我正在与其他人的厨师食谱合作,它包括对我服务器上安装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
我是厨师的新手,所以我不确定这些软件包的位置,但在食谱回购中没有其他人参考它们,我猜这是指一个中央回购。在这种情况下,我怎么能修改这个配方让厨师(独奏)准备我的服务器有不同的补丁级别?
答案 0 :(得分:1)
The documentation可能会在这里澄清一点:
package
告诉厨师 - 客户使用十六种中的一种 在chef-client运行期间提供者,使用的提供者 由厨师 - 客户端取决于机器的平台上 厨师 - 客户运行正在进行
因此,在基于Debian的系统(如编写配方的系统)上,Chef会自动将package
资源解析为apt_package
资源,该资源将调用apt-get
来安装{{ 1}}。
现在,由于没有主流的Linux发行版或FreeBSD打包多个Ruby的补丁级别(并且在某些情况下,声明的补丁级别不是它们看起来的那样),您可能不希望使用ruby1.9.3
来得到Ruby。最有可能的是,您最终希望使用类似the bash
resource的内容从源代码构建它。
package
对于安装Ruby先决条件仍然有用,您可以在供应商的软件包存储库中使用它而不会出现问题。