Vagrant + Chef + apt:是否可以在Ubuntu VM上安装特定版本的deb软件包?

wch*_*wch 8 ubuntu apt chef-infra vagrant

我正在使用Vagrant和Chef来构建一个Ubuntu 12.04虚拟机.我正在使用这里的opscode cookbook:https://github.com/opscode/cookbooks

我想使用opscode apt cookbook来安装包.我想确保它安装特定版本的软件包,以确保构建环境一致.这是我正在尝试做的一个例子:

package "git" do
  action :install
end
Run Code Online (Sandbox Code Playgroud)

我知道如果你从命令行使用apt安装软件包,你可以像这样指定版本:

apt-get install git=1:1.7.9.5-1
Run Code Online (Sandbox Code Playgroud)

但我无法通过食谱弄清楚如何做到这一点.这可能吗?

wch*_*wch 13

我想我明白了.这很简单:

package "git" do
  version "1:1.7.9.5-1"
  action :install
end
Run Code Online (Sandbox Code Playgroud)

  • 将版本号放入属性可能是个好主意.这样你就可以升级(或降级!),而无需上传新的食谱. (4认同)
  • 有点像`default [:git_version] = 1.7.9.5-1`来指定属性文件中的版本号,然后在你的食谱中使用`version node [:git_version]`. (2认同)