【发布时间】:2016-01-15 11:07:45
【问题描述】:
我正在构建一个 vagrant 设置,其中一部分是安装 rbenv。我正在使用 librarian-chef 来管理我所有的厨师食谱,它会安装 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。我想用 chef 设置 rbenv,因为这样我就不用在安装后手动设置它了。
我遇到的另一个问题是,似乎所有受 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.
【问题讨论】:
标签: ruby rubygems chef-infra vagrant rbenv