嘿,我正在尝试构建一个 vagrant vm。我正在使用 chef-solo 进行配置,并使用chef-rbenv来管理我的版本。所以在我指定的流浪文件中
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "cookbooks"
chef.add_recipe "ruby_build"
chef.add_recipe "rbenv::system"
chef.add_recipe "rbenv::vagrant"
...
chef.json = {
"rbenv" => {
"rubies" => [ "1.9.3-p327" ],
"global" => "1.9.3-p327",
"gems" => {
"1.9.3-p327" => [
{ "name" => "bundler" }
]
}
}
}
end
这样默认的 ruby 版本将是 1.9.3-p327,但它会崩溃
Error executing action `install` on resource 'rbenv_ruby[1.9.3-p327] (system)'
如果我没有在 vagrant 文件中指定版本(如上所示),并使用厨师构建的默认 rbenv 以便我可以在我进入 vm 时安装它。然后我明白了
vagrant@precise64:/vagrant$ rbenv install 1.9.3-p327
Downloading yaml-0.1.4.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/36c852831d02cf90508c29852361d01b
Installing yaml-0.1.4...
BUILD FAILED
...
它在我运行时有效,sudo rbenv install 1.9.3-p327
但是当我运行任何东西时,我什至必须在它前面加上 sudoruby -v
vagrant@precise64:~$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]
vagrant@precise64:~$ sudo ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.3.0]
我怎样才能用 chef-solo 安装它。我已经尝试了整个星期,但根本无法让它工作。