情况是标准食谱chef-provisioning
的安装将失败,因为Nokogiri gem无法使用本机扩展进行编译。这是Ubuntu和CentOS的情况。肯定是一个错误 - 现在我试图找到一个解决方法。
编译失败是由缺少的包引起的。在Ubuntu包liblzma-dev
和zlib1g-dev
。
要安装缺少的包,我创建了一个单独的食谱fix-missing
。我的运行列表是fix-missing
,然后是chef-provisioning
。
看来Chef忽略了运行列表顺序。出乎意料的是,我还没有完全理解这一点,但无论如何,如果不使用运行列表,应该怎么做呢?
我的解决方法是首先创建仅包含fix-missing
的运行列表,然后运行该列表,然后更新运行列表以包含chef-provisioning
。
运行列表,两者都将失败。
答案 0 :(得分:0)
您遇到的问题是由于chef-gem
在编译时安装了gem(允许在之后的配方中使用gem)。
如果您之前需要安装软件包,那么您在运行列表中使用配方(主厨尊重您提供的订单)的正确路径,但您必须在{{3}强制执行此软件包安装也是。
package "libzma-dev" do
action :nothing
end.run_action(:install)