Puppet: Wie installiere ich ein Git-Paket von Debian Wheezy-Backports?

Puppet: Wie installiere ich ein Git-Paket von Debian Wheezy-Backports?

Ich verwende das Apt-Modul (https://forge.puppetlabs.com/puppetlabs/apt) und habe einen Eintrag für das Debian Wheezy Backports-Repository hinzugefügt:

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'],
}

Ich kann erfolgreich Pakete installieren, die in wheezy-backports verfügbar sind, aber nicht im Standard-Repository, daher gehe ich davon aus, dass die Konfiguration selbst korrekt ist. Die manuelle Installation von Backports funktioniert apt-get install git -t wheezy-backportsauch.

Aber wie zwinge ich Puppet, ein Paket aus wheezy-backports statt aus dem Standard-Repository abzurufen? Genauer gesagt möchte ich git-1.9.1-1 installieren, das sich in wheezy-backports befindet, aber

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

schlägt fehl.

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

installiert nur die neueste Version aus dem Standard-Repository, nicht jedoch die neuere Backport-Version.

Bitte geben Sie an, wie Sie Puppet zwingen können, ein bestimmtes Paket aus dem Wheezy-Backports-Repository abzurufen.

Antwort1

Von demDebian-Backports-Dokumentation, Sie müssen das Repository manuell angeben, wenn Sie über die CLI installieren, da Backport-Pakete mit einer höheren Priorität fixiert werden als Standardpakete.

Gemäßdiese ServerFault-Antwort, müssen Sie entweder das gesamte Repository oder einzelne Pakete anheften, um Backports zu verwenden.

Mit dem Puppetlabs-Apt-Modul können Sie dies mithilfe der apt::backportsKlasse tun, die sowohl das Backports-Repository hinzufügt als auch eine Pin-Datei ablegt:

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

Wenn Sie nicht das gesamte Repository anheften möchten, können Sie einzelne Pakete folgendermaßen anheften apt::pin(unten ist ein Beispiel, Sie müssen es möglicherweise anpassen):

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

Weitere Dokumentation finden Sie hier:https://forge.puppetlabs.com/puppetlabs/apt#pin-a-specific-release

verwandte Informationen