Vagrant: instala git usando Chef

Estoy usando un libro de cocina Chef para instalar Git en mi máquina virtual Vagrant. De acuerdo con la configuration pnetworkingeterminada , el libro de cocina debería instalar Git 2.8.1, pero en su lugar obtengo Git 1.9.1.

¿Cuál sería la forma correcta de usar Chef para instalar una versión más reciente de Git? Para mantener la configuration simple, aún me gustaría usar Cookbooks.

Esta es mi configuration hasta ahora:

Vagrantfile:

Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.berkshelf.enabled = true config.vm.provision "chef_solo" do |chef| chef.add_recipe "git" end end 

metadata.rb:

 name 'vagrant-example' recipe 'git', 'Installs git' 

Berksfile:

 source "https://supermarket.chef.io" metadata cookbook "git" 

Berksfile.lock:

 DEPENDENCIES git vagrant-example path: . metadata: true GRAPH build-essential (6.0.3) compat_resource (>= 12.10) mingw (>= 1.1) seven_zip (>= 0.0.0) chef_handler (1.4.0) compat_resource (12.10.7) dmg (2.4.0) git (4.6.0) build-essential (>= 0.0.0) dmg (>= 0.0.0) windows (>= 0.0.0) yum-epel (>= 0.0.0) mingw (1.2.4) compat_resource (>= 0.0.0) seven_zip (>= 0.0.0) seven_zip (2.0.1) windows (>= 1.2.2) vagrant-example (0.0.0) windows (1.44.1) chef_handler (>= 0.0.0) yum (3.11.0) yum-epel (0.7.0) yum (>= 3.6.3) 

Salida de Vagrant arriba:

 ==> default: Installing Cookbook Gems: ==> default: Compiling Cookbooks... ==> default: Converging 1 resources ==> default: Recipe: git::package ==> default: ==> default: * git_client[default] action install ==> default: ==> default: * apt_package[default :create git] action install ==> default: [2016-08-14T01:11:04+00:00] INFO: apt_package[default :create git] installed git at 1:1.9.1-1ubuntu0.3 ==> default: - install version 1:1.9.1-1ubuntu0.3 of package git ==> default: ==> default: ==> default: ==> default: ==> default: [2016-08-14T01:11:04+00:00] INFO: Chef Run complete in 13.492574359 seconds 

Incluso traté de especificar la versión usando los attributes de Chef en el Vagrantfile, pero tampoco funcionó:

 Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.berkshelf.enabled = true config.vm.provision "chef_solo" do |chef| chef.add_recipe "git" chef.json = { "git" => { "version" => "2.8.1" } } end end 

La receta de git::default instala desde los packages de distribución que para Ubuntu Trusty es 1.9.1. Puede usar la receta git::source para forzarla a comstackr desde el origen, que puede instalar cualquier versión.