Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs APT-Pinning

APT-Pinning

Debian bietet mit APT-Pinning die Möglichkeit verschiedene Paketquellen aus z.B. Testing & Unstable mit unterschiedlichen Prioritäten zu versehen.

sources.list erweitern

Als erstes tragen wir in die /etc/apt/sources.list alle gewünschten Paketquellen ein.

z.B.

deb http://ftp.debian.org/debian/ oldstable main contrib non-free
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ testing main contrib non-free
deb http://ftp.debian.org/debian/ unstable main contrib non-free

deb http://security.debian.org/ oldstable/updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://backports.debian.org/debian-backports/ squeeze-backports 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 stable:
Explanation:
Package: *
Pin: release o=Debian,a=oldstable
Pin-Priority: 600

Package: *
Pin: release o=Debian Backports,a=squeeze-backports
Pin-Priority: 700

Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 900

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 600

Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300

Package: *
Pin: release o=Debian,a=stable-updates
Pin-Priority: 991

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:
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:

Hier sieht man sehr gut die Prioritäten der einzellnen sources.list Einträge.
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.

deb http://ftp.debian.org/debian/ oldstable main contrib non-free
deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ testing main contrib non-free
deb http://ftp.debian.org/debian/ unstable main contrib non-free

deb http://security.debian.org/ oldstable/updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://backports.debian.org/debian-backports/ squeeze-backports main contrib non-free