Puppet:如何從 Debian wheezy-backports 安裝 git 軟體包?

Puppet:如何從 Debian wheezy-backports 安裝 git 軟體包?

我正在使用 Apt 模組(https://forge.puppetlabs.com/puppetlabs/apt)並新增了 Debian wheezy 向後移植儲存庫的條目:

apt::source { 'wheezy-backports':
    location    => 'http://ftp.de.debian.org/debian',
    release     => 'wheezy-backports',
    repos       => 'main',
    include_deb => true,
    include_src => true,
    notify      => Exec['apt-get-update'],
}

我可以成功安裝 wheezy-backports 中可用但預設儲存庫中不可用的軟體包,因此我認為配置本身是正確的。使用向後移植手動安裝apt-get install git -t wheezy-backports也有效。

但是如何強制 Puppet 從 wheezy-backports 而不是預設儲存庫檢索套件呢?具體來說,我想安裝 git-1.9.1-1,它處於喘息的反向移植中,但是

package { "git": ensure => "1:1.9.1-1~bpo70+2", }

失敗。

package { "git": ensure => "latest", }

將僅安裝預設儲存庫中的最新版本,而不安裝較新的向後移植版本。

請告知如何強制 Puppet 從 wheezy-backports 儲存庫檢索特定套件。

答案1

來自Debian 向後移植文檔,透過 CLI 安裝時需要手動指定儲存庫,因為向後移植的套件的固定優先權高於預設套件。

按照這個伺服器故障答案,您將需要固定整個儲存庫或單一套件才能使用向後移植。

借助 Puppetlabs apt 模組,您可以使用該類別來執行此apt::backports操作,該類別將添加反向移植儲存庫並刪除 pin 檔案:

class { 'apt::backports':
  location => 'http://ftp.de.debian.org/debian',
  release  => 'wheezy-backports',
  repos    => 'main',
  pin      => 500,
}

如果您不想固定整個儲存庫,您可以使用以下方式固定單一套件apt::pin(下面是一個範例,您可能需要調整它):

apt::pin { 'backports_git':
  packages => 'git',
  priority => 500,
  release  => 'main',
}

更多文件在這裡:https://forge.puppetlabs.com/puppetlabs/apt#pin-a-specific-release

相關內容