gpt4 book ai didi

ruby - Chef Ohai : how to use newly installed Ruby with gem_package

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:53 25 4
gpt4 key购买 nike

使用 chef 我有一个安装 gem 的简单方法,例如:

gem_package "passenger" do
version node['passenger']['version']
end

我还想用另一本说明书安装 ruby​​,对于某些服务器可能是 Ruby 1.9.3,对于其他服务器可能是 Ruby Enterprise 1.8.7。所以我想我可以使用 gem_binaryohai 来做到这一点,就像这样:

gem_package "passenger" do
version node['passenger']['version']
gem_binary "#{languages['ruby']['bin_dir']/gem}"
end

但是问题开始了,因为在安装新的 ruby​​ 时 languages['ruby'] 没有改变。 Ruby Enterprise 安装到 /opt/ruby-enterprise 并通过 /etc/profile.d/ree.sh 将自身添加到 PATH 但这是在同一次运行中未被 ohai 拾取,但在下一次运行中被拾取。

在第一次运行时,ohailanguages['ruby'] 安装在 /opt/vagrant_ruby/bin/ruby 时与 vagrantchef_solo 一起使用。 passenger gem 安装到错误的 ruby​​ 中。

如何让 ohai 识别新安装的 ruby​​?

最佳答案

通常我使用的 RVM 也有同样的问题。在那里,我通常对 gem 二进制文件的路径进行硬编码,并将最后一位保留为属性。

例如

有点像

  5   node["rvm"]["rubies"].each do |ruby|
6 gem_package "[#{ruby}]-passenger" do
7 package_name "passenger"
8 version node[:passenger][:version]
9 gem_binary "/usr/local/rvm/bin/gem-#{ruby}"
10 options "--no-ri --no-rdoc"
11 end
12 end

或者,我们使用了 bash block 并获取了适当的文件。请注意,当使用 bash block 时,只有 block 中的最后一件事将用于确定成功,通常明智的做法是将它们与 &&

链接起来

关于ruby - Chef Ohai : how to use newly installed Ruby with gem_package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com