使用chef我有一个安装 gem 的简单配方,例如:
gem_package "passenger" do
version node['passenger']['version']
end
我还想用另一本说明书安装 ruby,对于某些服务器可能是 Ruby 1.9.3,对于其他服务器可能是 Ruby Enterprise 1.8.7。所以我想我可以使用gem_binary并ohai做到这一点,就像这样:
gem_package "passenger" do
version node['passenger']['version']
gem_binary "#{languages['ruby']['bin_dir']/gem}"
end
但随后问题开始了,因为languages['ruby']安装新的 ruby 时没有改变。Ruby Enterprise 安装到via 中/opt/ruby-enterprise并将其自身添加到PATHvia中,但在同一运行期间/etc/profile.d/ree.sh不会被拾取ohai,但会在下一次运行中被拾取。
在第一次运行时,ohai说languages['ruby']安装在/opt/vagrant_ruby/bin/ruby使用vagrant和chef_solo配置时。乘客宝石安装到错误的红宝石中。
我怎样才能ohai识别新安装的红宝石?