ruby 如何使用rbenv在没有sudo的情况下全局安装gem?

f5emj3cl  于 2023-10-17  发布在  Ruby
关注(0)|答案(2)|浏览(129)

我正在使用rbenv,我试图安装sass没有成功。
因此,我通过Homebrew安装了rbenv,然后是Ruby 2.2(rbenv install 2.2),最后是gem install sass,但我无法在$PATH上使用sass
时间不多,我用我的系统(约塞米蒂)默认的Ruby 2。这把所有东西都放在/Library/Ruby/Gems/2.0.0中,事情确实可以工作,但不是以最理想的方式。
理想情况下,使用rbenv我应该能够安装任何Ruby版本,并在该版本的目录中安装gem,然后将其符号链接到/usrl/local/bin
任何帮助,什么可能出了问题,将非常感谢。

roejwanj

roejwanj1#

基本上,问题是我没有将rbenv/bin/rbenv添加到$PATH

export PATH="$HOME/.rbenv/bin:$PATH"

更好的是,将其添加到.bashrc.bash_profile中,以启动与rbenv的每个会话。
之后,请确保:

eval "$(rbenv init -)"

以便启用自动填充和自动完成。

鱼壳

对于那些使用鱼的人,你可以这样做:

if status --is-interactive
  . (rbenv init - | psub)
end

现在,如果您不喜欢直接修改$PATH,并且拥有/usr/local/bin的所有权,那么更好的解决方案是使用~/.rbenv/bin/rbenv进行符号链接。

ln -s ~/.rbenv/bin/rbenv /usr/local/bin

ruby-build

作为最后一个警告,请确保安装ruby-build(一个rbenv插件,用于将install命令添加到rbenv,并能够轻松安装Ruby版本。
如果你正在使用homebrew,它就像馅饼一样简单:

brew install ruby-build
w1e3prcc

w1e3prcc2#

另一个可能与某些人相关的选项,取决于人们如何看待“全局”安装的东西,假设人们使用的是基于gemrbenv版本的gem命令,使用--user-install选项到gem install。例如:

gem install --user-install sass

这将只为运行它的用户安装东西(所以在这个意义上不是全局的),而且在某种程度上,它不仅仅适用于特定的基于bundle的安装,比如说(所以在这个意义上它是全局的)。

相关问题