APT-Pinning
sources.list erweitern
Als erstes tragen wir in die /etc/apt/sources.list alle gewünschten Paketquellen ein.
z.B.# Sicherheits Updates:
deb http://security.debian.org/ stable/updates main
deb http://security.debian.org/ testing/updates main
# Sich oft ändernde Pakete z.B. Spamfilter Regeln für Stable:
deb ftp://ftp.de.debian.org/debian-volatile stable/volatile main
# Quellen für Stable/Testing/Unstable
deb http://ftp.de.debian.org/debian stable main contrib non-free
deb http://ftp.de.debian.org/debian testing main contrib non-free
deb http://ftp.de.debian.org/debian unstable main contrib non-free
APT-Pinning über die Datei /etc/apt/preferences
jetzt benötigen wir die Datei: /etc/apt/preferences die wir mit folgendem Inhalt selbst anlegen:* Track testing:
Explanation:
Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 400
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300
Package: *
Pin: release o=Debian,l=Debian-Security,a=stable
Pin-Priority: 401
Package: *
Pin: release o=Debian,l=Debian-Security,a=testing
Pin-Priority: 900
Package: *
Pin: release o=volatile.debian.net
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -1
Beschreibung
wir geben mit der folgenden Anweisung Testing-Paketen eine hohe Priorität:
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Das bedeutet, das somit alle Pakete aus Testing genommen werden.
Mit der folgenden Anweisung bestimmen wir das Pakete aus Volatile auch eine sehr hohe Priorität haben und ebenfalls automatisch installiert/aktualisiert werden.
Package: *
Pin: release o=volatile.debian.net
Pin-Priority: 900
Für die Prioritäten gelten folgende Regeln:
X < 0
Das Paket wird niemals installiert
0 < X <= 100
Das Paket wird nur installiert, wenn es noch keine installierte Version des Paketes gibt
100 < X <= 500
Bewirkt eine installation des Paketes, ausser es exisitiert eine
Version, die zu einer andere Distribution (bezogen auf Debian stable,
testing, unstable) gehört oder die installierte Version neuer ist.
500 < X <= 990
Bewirkt die Installation, es sei denn es gibt eine zum Target Release gehörige Version oder die installierte Version ist neuer
990 < X <= 1000
Bewirkt immer eine Installation, ausser die installierte Version ist neuer
X > 1000
Das Paket wird immer installiert, auch wenn dies ein Downgrade des Paketes nach sich zieht
Beispiel:
mit einer Priorität von 1001 für stable und einem apt-get dist-upgrade, kann man das ganze System wieder auf einen sauberen Stable-Zeitpunkt zurücksetzen. Es werden dabei alle installierten Paket auf Ihre Stable-Version gesetzt, egal ob sie zur Zeit in neuerer Version installiert sind oder nicht.
Überprüfen der APT-Pinning Einstellungen
mit folgender Anweisung kann man seine Konfiguration leicht überprüfen."apt-cache policy" bringt folgende Meldungen:
Package Files:Hier sieht man sehr gut die Prioritäten der einzellnen sources.list Einträge.
100 /var/lib/dpkg/status
release a=now
400 http://ftp.de.debian.org unstable/non-free Packages
release o=Debian,a=unstable,l=Debian,c=non-free
origin ftp.de.debian.org
400 http://ftp.de.debian.org unstable/contrib Packages
release o=Debian,a=unstable,l=Debian,c=contrib
origin ftp.de.debian.org
400 http://ftp.de.debian.org unstable/main Packages
release o=Debian,a=unstable,l=Debian,c=main
origin ftp.de.debian.org
900 http://ftp.de.debian.org testing/non-free Packages
release o=Debian,a=testing,l=Debian,c=non-free
origin ftp.de.debian.org
900 http://ftp.de.debian.org testing/contrib Packages
release o=Debian,a=testing,l=Debian,c=contrib
origin ftp.de.debian.org
900 http://ftp.de.debian.org testing/main Packages
release o=Debian,a=testing,l=Debian,c=main
origin ftp.de.debian.org
300 http://ftp.de.debian.org stable/non-free Packages
release v=3.1r2,o=Debian,a=stable,l=Debian,c=non-free
origin ftp.de.debian.org
300 http://ftp.de.debian.org stable/contrib Packages
release v=3.1r2,o=Debian,a=stable,l=Debian,c=contrib
origin ftp.de.debian.org
300 http://ftp.de.debian.org stable/main Packages
release v=3.1r2,o=Debian,a=stable,l=Debian,c=main
origin ftp.de.debian.org
900 ftp://ftp.de.debian.org stable/volatile/main Packages
release o=volatile.debian.net,a=sarge,l=debian-volatile,c=volatile/main
origin ftp.de.debian.org
900 http://security.debian.org testing/updates/main Packages
release o=Debian,a=testing,l=Debian-Security,c=updates/main
origin security.debian.org
300 http://security.debian.org stable/updates/main Packages
release v=3.1,o=Debian,a=stable,l=Debian-Security,c=updates/main
origin security.debian.org
Pinned Packages:
Diese Angaben eignen sich auch sehr gut um die preferences besser zu gestalten.
Man sieht hier z.B. die Unterschiede der einzelnen Quellen in den Parametern und kann sie so mit gezielten Ausdrücken in der preferences behandeln.