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-backports
auch.
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::backports
Klasse 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