apt-get update && apt-get install git-core在我的12.04 ubuntu服务器上apt-get update && apt-get install git-core导致git版本为1.7.9。
我必须有1.7.10或更新。
有两个选项,我可以看到。 1.添加ppa
2.从源代码安装git
我认为从源代码编译将更容易,所以这是我正在尝试。
我试过使用puppetlabs / apt模块来安装git-core ppa,但是我的git版本在puppet运行后仍然是1.7.9。
root@gitlab:~# puppet module list /etc/puppet/modules ├── puppetlabs-apt (v1.2.0) ├── puppetlabs-git (v0.0.3) ├── puppetlabs-stdlib (v4.1.0) └── ruby (???) root@gitlab:~# cat /etc/puppet/manifests/git.pp class { 'apt': } apt::ppa { 'ppa:git-core/ppa': before => Exec['apt-get update'], } exec{'apt-get update': path => ['/usr/bin', '/usr/sbin'], } package {'git-core': ensure => latest, require => Exec['apt-get update'], } root@gitlab:~# puppet apply /etc/puppet/manifests/git.pp --verbose Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/facter_dot_d.rb Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/facter_dot_d.rb Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb Info: Applying configuration version '1379214336' Notice: /Stage[main]//Exec[apt-get update]/returns: executed successfully Notice: Finished catalog run in 5.80 seconds root@gitlab:~# git --version git version 1.7.9.5
git-core不是该PPA中的软件包,而是想要改为git (并且可能会从Ubuntu repo中删除git-core )。
Shane提到你应该在包装定义中使用git而不是git-core 。
也不需要创buildExec['apt-get update']依赖项,因为模块已经在处理这个问题了。
来自模块的代码:
exec { "add-apt-repository-${name}": ... notify => Exec['apt_update'], ... }
所以,如果你想一直保持git的最新状态,你应该这样做:
class {'ntp': always_apt_update => true, }
和
package {'git': ensure => latest, require => Apt::Ppa['ppa:git-core/ppa'], }