我正在使用Chef solo、Berkshelf和Vagrant来尝试构建一个开发环境。我还有其他的菜谱,但是“chef rvm”菜谱给我安装ruby版本带来了麻烦。
要明确的是,RVM正在安装,但当我在vbox中输入“vagrant ssh”并键入“RVM list”时,它表示没有安装rubies。我可以输入“rvm install 2.1.1”,它可以工作,所以我不确定Chef为什么不安装它。
流浪汉档案:
config.vm.provision :chef_solo do |chef|
chef.run_list = %w[
recipe[apt::default]
recipe[rvm::user_install]
recipe[rvm::vagrant]
]
end
配方/默认值。rb:
include_recipe 'apt'
include_recipe 'rvm::user_install'
属性/default.rb:
node.set['rvm']['user_installs'] = [
{ 'user' => 'vagrant',
'upgrade' => 'head',
'default_ruby' => '2.1.1',
'rvm_gem_options' => '',
'rubies' => ['2.1.1', '2.0.0-p481'],
'global_gems' => [
{ 'name' => 'bundler',
'version' => '1.6.2'
},
{ 'name' => 'rake' },
{ 'name' => 'rails' },
{ 'name' => 'rubygems-bundler',
'action' => 'remove'
}
]
}
]
我以为这应该是默认操作,但我和你有同样的问题。我的解决方案是在json配置中包含“install_ruby”属性:
node.set['rvm']['user_installs'] = [
{ 'user' => 'vagrant',
install_rubies: true,
...
}
]