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

问题描述 投票:0回答:2

我正在使用

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

因此,我通过

Homebrew
安装了 rbenv,然后安装了 Ruby 2.2 (
rbenv install 2.2
),最后安装了
gem install sass
,但我无法在我的
sass
上使用
$PATH

时间紧迫,我

sudo gem install sass
使用系统(Yosemite)的默认 Ruby 2。这将所有内容放入
/Library/Ruby/Gems/2.0.0
并且一切正常,但不是以最理想的方式。

理想情况下,使用

rbenv
我应该能够安装任何 Ruby 版本,并将 gems 安装在该版本的目录中,然后符号链接到
/usrl/local/bin

任何有关可能出现问题的帮助将非常感激。

ruby rubygems sudo rbenv
2个回答
9
投票

基本上,问题是我没有将

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 构建

作为最后的警告,请确保安装

ruby-build
(一个
rbenv
插件,用于将
install
命令添加到
rbenv
并能够轻松安装 Ruby 版本。)

如果您使用homebrew,那就太简单了:

brew install ruby-build

0
投票

另一个可能与这里的某些人相关的选项,取决于人们如何看待“全局”安装的东西,是 - 假设一个人正在使用基于

rbenv
的版本的
gem
命令 - 使用
 --user-install
选项改为
gem install
。例如:

gem install --user-install sass

这只会为运行它的用户安装东西(因此在这个意义上不是全局的),但也以某种方式不仅可用于特定的基于

bundle
的安装,比如说(所以它全局的)感)。

© www.soinside.com 2019 - 2024. All rights reserved.