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

7

我正在使用rbenv并尝试安装sass,但没有成功。

所以,我通过Homebrew安装了rbenv,然后安装了Ruby 2.2(rbenv install 2.2),最后安装gem install sass,但我无法在$PATH中找到sass

时间紧迫,我使用系统的(Yosemite)默认Ruby 2来sudo gem install sass。这将所有内容放在/Library/Ruby/Gems/2.0.0中,事情确实起作用了,但不是最理想的方式。

理想情况下,使用rbenv,我应该能够安装任何Ruby版本,并将gems安装在该版本的目录中,然后再创建符号链接到/usrl/local/bin

如果有什么问题,请不吝赐教,谢谢。


1
如果您认为下面的答案回答了您想要的问题,请更新您的问题标题。该标题与答案不相符。 - Volte
2个回答

9
基本问题是我没有将 rbenv/bin/rbenv 添加到 $PATH 中。
export PATH="$HOME/.rbenv/bin:$PATH"

更好的做法是将以下内容添加到您的 .bashrc.bash_profile 文件中,以便每次使用 rbenv 时都会自动加载。
之后,请确保:
eval "$(rbenv init -)"

为了启用shims和自动完成功能。

fishshell

对于使用fish的用户,您可以像这样完成相同的操作:
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命令,使您能够轻松地安装Ruby版本)。

如果您使用的是homebrew,那就轻而易举:

brew install ruby-build

17
要么问题标题有误,要么这个“答案”没有回答到问题。 - Volte

0
另一个可能的选择,对于一些人来说可能很重要,这取决于对于某个东西被“全局”安装的理解方式,就是假设你正在使用基于rbenv的gem命令版本,可以使用--user-install选项来进行gem安装。例如:
gem install --user-install sass

这将只为运行它的用户安装东西(所以在这个意义上不是全局的),但也以一种方式安装,不仅仅适用于特定的基于bundle的安装,也适用于全局(在这个意义上是全局的)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接