流浪汉+;厨师长+;apt:是否可以在Ubuntu虚拟机上安装特定版本的deb软件包?

流浪汉+;厨师长+;apt:是否可以在Ubuntu虚拟机上安装特定版本的deb软件包?,ubuntu,chef-infra,apt,vagrant,Ubuntu,Chef Infra,Apt,Vagrant,我正在使用Vagrant和Chef构建一个Ubuntu 12.04虚拟机。我在这里使用opscode食谱: 我想使用opscode apt cookbook来安装软件包。我希望确保它安装包的特定版本,以确保构建环境的一致性。下面是我尝试做的一个例子: package "git" do action :install end 我知道,如果您从命令行使用apt安装软件包,您可以指定如下版本: apt-get install git=1:1.7.9.5-1 但我不知道如何通过食谱做到这一点。这

我正在使用Vagrant和Chef构建一个Ubuntu 12.04虚拟机。我在这里使用opscode食谱:

我想使用opscode apt cookbook来安装软件包。我希望确保它安装包的特定版本,以确保构建环境的一致性。下面是我尝试做的一个例子:

package "git" do
  action :install
end
我知道,如果您从命令行使用apt安装软件包,您可以指定如下版本:

apt-get install git=1:1.7.9.5-1

但我不知道如何通过食谱做到这一点。这可能吗?

我想我知道了。这很简单:

package "git" do
  version "1:1.7.9.5-1"
  action :install
end

将版本号放入属性中可能是个好主意。这样你就可以升级(或降级!),而不必上传新的食谱。你能更深入地解释一下吗?我对使用这个系统完全是新手。谢谢您可能需要查看Chef文档,例如将
default[:git\u version]=1.7.9.5-1
放入属性文件中指定版本号,然后在菜谱中使用
version节点[:git\u version]