我正在构建一个 vagrant 设置,其中一部分是安装 rbenv。我正在使用 librarian-chef 来管理我所有的厨师食谱,它安装了 rbenv 和 ruby-build。
但是,当我尝试 ssh 进入我的 Vagrant VM 并键入时,ruby -v
我得到了标准的 system-installed 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.