gpt4 book ai didi

ruby - 应该在系统范围内还是在用户级别安装 rbenv?

转载 作者:数据小太阳 更新时间:2023-10-29 06:36:30 27 4
gpt4 key购买 nike

我正在构建一个 vagrant 设置,其中一部分是安装 rbenv。我正在使用 librarian-chef 来管理我所有的 Chef Recipe ,它会安装 rbenv 和 ruby​​-build。

但是,当我尝试通过 ssh 进入我的 Vagrant VM 并键入 ruby -v 时,我得到了标准系统安装的 ruby 1.8.7 (2012-02-08 patchlevel 358) [ x86_64-linux]。考虑到可能没有安装 rbenv,我尝试运行 rbenv versions,但实际上已经安装了 rbenv:

vagrant@precise64:~$ rbenv versions
* system (set by /opt/rbenv/version)

然后我尝试了 rbenv install [version]:

vagrant@precise64:~$ rbenv install 1.9.3-p327
[...]

BUILD FAILED
[...]

test -z "/opt/rbenv/versions/1.9.3-p327/include" || /bin/mkdir -p "/opt/rbenv/versions/1.9.3-p327/include"
/bin/mkdir: cannot create directory `/opt/rbenv/versions/1.9.3-p327': Permission denied

失败,Permission denied。我尝试使用 sudo 再次安装:

sudo rbenv install 1.9.3-p327

这奏效了。然后我再次尝试运行 rbenv versions:

vagrant@precise64:~$ rbenv versions
* system (set by /opt/rbenv/version)

但它仍然说只安装了 system ruby​​。但是,如果我使用 sudo 运行它:

vagrant@precise64:~$ sudo rbenv versions
* system (set by /home/vagrant/.rbenv/version)
1.9.3-p327

rbenv versions 现在显示 1.9.3 已安装。

因此似乎存在脱节,因为 rbenv 和我的 ruby​​ 版本现在安装在系统级别而不是用户级别。

我正在使用 rbenv-cookbook .我想让 rbenv 与 chef 一起设置,因为这样可以避免我在安装后手动设置它。

我遇到的另一个问题是,似乎所有由 ruby​​ 控制的东西,例如 gem,也遭受同样的断开连接。

vagrant@precise64:~$ gem install bundler
Fetching: bundler-1.3.5.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /opt/vagrant_ruby/lib/ruby/gems/1.8 directory.

最佳答案

rbenv 应该安装在用户级别。

不幸的是,这意味着在运行 gem install 时,您可能会遇到您看到的问题:

You don't have write permissions into the {...} directory

您可以通过在 ~/.rbenv 目录上设置正确的权限来解决这个问题。

sudo chown -R yourusername ~/.rbenv

chown 目录之后,您将能够在没有 sudo 的情况下运行 gem install

关于ruby - 应该在系统范围内还是在用户级别安装 rbenv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16815750/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com