Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Sie sind hier: Startseite / Dokumentationen / Debian GNU/Linux / APT-Pinning

APT-Pinning

Debian bietet mit APT-Pinning die Möglichkeit verschiede 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.
# 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:
 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.