我尝试将此 Play2 食谱添加到我的食谱列表中以与 Vagrant 一起运行,vagrant provision
后出现错误
FATAL: Gem::InstallError: chef_gem[rubyzip] (play2::default line 20) had an error: Gem::InstallError: rubyzip requires Ruby version >= 1.9.2.
所以我使用了安装了 Ruby 1.9.3 的不同底盒:
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "precise64-ruby1.9.3"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
config.vm.box_url = "https://dl.dropbox.com/u/14292474/vagrantboxes/precise64-ruby-1.9.3-p194.box"
但是,使用 Vagrant 进行配置仍然会出现相同的错误。盒子确实使用了Ruby 1.9.3:
$ vagrant ssh
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
Last login: Sun Aug 19 22:42:58 2012 from 10.0.2.2
vagrant@precise64:~$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
在SSH进入流浪机器后,做gem install rubyzip
工作就好了。为什么vagrant provision
在这里不起作用?
如果要将其
安装在系统的 ruby 中,请按 gem_package
安装。Chef带来了它自己的ruby(综合安装程序的概念),chef_gem
是在该环境中安装gem的LWRP。