gpt4 book ai didi

ruby - 在 Chef 配方中,您如何为 Ruby 指定特定的补丁级别?

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:34 26 4
gpt4 key购买 nike

我正在使用其他人的 Chef Recipe ,它包含以下对在我的服务器上安装 1.9.3p0 的过程的引用:

package 'ruby1.9.3'
package 'ruby1.9.1-dev'

# set ruby 1.9 to be default
execute 'update-alternatives --set ruby /usr/bin/ruby1.9.1'
execute 'update-alternatives --set gem /usr/bin/gem1.9.1'

ohai "reload" do
action :reload
end

我是 Chef 的新手,所以我不确定这些包在哪里,但在 Recipe 的 repo 中没有看到其他人提到它们,我猜它指的是一个中央 repo 。在那种情况下,我如何修改此 Recipe 以使 Chef (单人)为我的服务器准备不同的补丁级别?

最佳答案

The documentation可以在这里稍微澄清一下:

package tells the chef-client to use one of sixteen different providers during the chef-client run, where the provider that is used by chef-client depends on the platform of the machine on which the chef-client run is taking place

因此在基于 Debian 的系统上,例如为该配方编写的系统,Chef 会自动将 package 资源解析为 apt_package 资源,这将调用 apt-get 安装 ruby1.9.3

现在,鉴于主流 Linux 发行版或 FreeBSD 都没有打包多个 Ruby 补丁级别(并且在某些情况下,声明的补丁级别不是他们看起来的那样),您可能不想使用 package 获取 Ruby。很可能你最终会想要使用像 the bash resource 这样的东西从源代码构建它。 .

package 仍可用于安装 Ruby 先决条件,您可以毫无问题地从供应商的软件包存储库中使用它。

关于ruby - 在 Chef 配方中,您如何为 Ruby 指定特定的补丁级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166527/

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