厨师食谱安装清漆3.0在Ubuntu的清醒?

这是我的问题。 我想要Varnish 3.0,但是Lucid只有2.1包可用。

因此,使用Chef,我需要制作一个安assembly方,将varnish-cache.org存储库添加到apt源,并安装varnish-3.0软件包。

(我有select从源(右?),但如果我这样做,我不会得到/etc/init.d脚本(右?))。

所以我正在编写一个apt_install.rb配方,这可能会添加存储库:

apt_repository "varnish-3.0" do uri "http://repo.varnish-cache.org/ubuntu/" repo_name "varnish-3.0" distribution "lucid" components ["varnish-3.0"] key "http://repo.varnish-cache.org/debian/GPG-key.txt" deb_src true action :add end 

实际上,这在/etc/apt/sources.list.d中添加了一个varnish-3.0-source.list文件,它说:

 # Created by the Chef apt_repository LWRP deb http://repo.varnish-cache.org/ubuntu/ lucid main 

然后我有

 package "varnish" do source "http://repo.varnish-cache.org/ubuntu/" action :install end 

继续在我的服务器上安装2.1版本,而不是3.0。

如果我在软件包块中指定了一个“版本”,我会得到“未find版本”。

我在这里错过了什么? 这一定很简单。

我最大的问题是apt烹饪书的旧版本。 即使如此,清漆分布名称有点不寻常。 这是我的configuration:

 apt_repository "varnish-3.0" do uri "http://repo.varnish-cache.org/ubuntu/" repo_name "varnish-3.0" distribution "lucid" components ["varnish-3.0"] key "varnish-cache.org.gpg-key.txt" deb_src true action :add end package "varnish" do source "http://repo.varnish-cache.org/ubuntu/" version "3.0.2-1~1lucid1" options "--force-yes" action :install end 

存储库密钥作为食谱文件包含在内。

当在现有的Varnish 2.3安装上运行这个配方时,第一个厨师客户端运行失败时,试图处理apt的升级configuration文件对话框。 在我的例子中,第二个厨师客户正确地进行清洁。

我认为OP的方法是正确的。

但是,如果由于某种原因而不能接受,那么你可以做的另一件事就是从源代码创build你自己的.deb包。

就个人而言,我不是使用每个包pipe理者不同口味的Crazy,而是使用Jordan Sissel的FPM 。 FPM使得生成不同风格的包非常容易,并且文档引导您通过具体的例子,例如用例 – 使用“make install”的包 。

(个人注意:这对于Vagrant来说是一个很好的用途。)