ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Apt-Pinning

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Apt-Pinning nennt man eine Technik, bei der in der sources.list verschiedene Repositories "gewichtet" werden. So kann man getrost bei Dapper bleiben, kann aber Pakete gezielt aus Edgy oder einer inoffiziellen Quelle ziehen. Es lässt sich auch ein Paket in einer bestimmten Version festhalten oder dessen Installieren oder Deinstallieren verhindern. Dies wird hier als Beispiel dargestellt.

Das Pinning geschieht in der Datei /etc/apt/preferences, die in einem Editor mit Root-Rechten [1] angelegt bzw. bearbeitet werden muss. Im weiteren Verlauf folgen Beispiele.

Hinweis:

Das Folgende ist lediglich ein Beispiel, wie Pinning verwendet werden kann. Die konkreten Gewichtungen sind auf keinen Fall als Empfehlung zu verstehen.

Die Beispieldatei /etc/apt/sources.list soll hier als Beispiel wie folgt aussehen:

## Offizielle Quellen
deb http://archive.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
## Inoffizielle Quelle
deb http://irgendwas.boeses.inoffizielles.de/ubuntu/ dapper main restricted universe multiverse

Pinning per release

Package: *
Pin: release v=6.06, l=Ubuntu
Pin-Priority: 1000

Von nun an haben alle Pakete aus Quellen mit der Version 6.06 und dem Distributionsnamen (Label) Ubuntu den Vorzug, selbst wenn es in anderen Quellen neuere Pakete gibt. Ein Pin: release a=dapper hätte nicht gereicht, da es ja auch Paketquellen von Dapper gibt, die dapper-security, dapper-updates etc. heißen. Erst wenn es die Pakete dort nicht gibt werden diese, soweit verfügbar, aus anderen Quellen installiert.

Pinning per origin

Package: *
Pin: origin irgendwas.boeses.inoffizielles.de
Pin-Priority: 300

Dieser Fall setzt die Priorität einer bestimmten Internetadresse (origin). Die genaue Bedeutung der Werte wird im APT HOWTO 🇬🇧 erläutert. Soviel sei nur gesagt: Je höher das Gewicht, um so mehr wird einem Paket Vorzug gegeben, wobei es ab gewissen Schwellenwerten besondere Verhalten gibt. Bei einem Wert unter 1000 wird immer noch eine neuere Version mit einem niedrigen Wert (z.B. Version 2.0, Priorität 600) einem älteren Paket mit hohem Wert (Version 1.0, Priorität 800) vorgezogen.

Pinning per version

Package: hello
Pin: version 2.1.1*
Pin-Priority: 1000

Der letzte Fall verhindert das Installieren einer neueren Version des Paketes hello als Version 2.1.1, aber auch das unbeabsichtigte, "automatische" Deinstallieren aufgrund von Konflikten.

Hinweis:

In der /etc/apt/preferences definiert eine Leerzeile einen neuen Abschnitt für einen weiteren Eintrag. Leerzeilen zwischen Package, Pin und Pin-Priority sind nicht erlaubt.

Gezieltes Umgehen mit apt-get

Im Terminal [2] kann man mit apt-get die Prioritäten aber auch gezielt umgehen. Folgender Aufruf z.B. zieht mplayer aus dem dapper-Paketbereich. Dabei werden Abhängigkeiten nach der Priorität erfüllt.

apt-get -t dapper install mplayer-custom

Prioritäten der Präferenzen

Die Prioritäten (P) in der APT preferences Datei müssen positive oder negative ganze Zahlen sein. Sie werden wie folgt interpretiert:

  • P > 1000
    Version wird in jedem Fall installiert, auch wenn das einen Downgrade des Paketes nach sich zieht

  • 990 < P ⇐ 1000
    Version wird installiert, auch wenn sie nicht zum Release gehört, es sei denn ein aktuelleres Pakete ist bereits installiert

  • 500 < P <=990
    Version wird installiert, wenn es nicht eine Version gibt, die zum Release gehört oder eine aktuellere Version bereits installiert ist

  • 100 < P <=500
    Version wird installiert, es sei denn, es gibt eine aktuellere die nicht zum Release gehört oder die bereits installierte Version ist aktueller

  • 0 < P <=100
    Version wird nur dann installiert, wenn es keine bereits installierte gibt

  • P < 0
    Version wird nicht installiert

Das Paket mit der höchsten Punktzahl beginnt.

Experten-Info:

Ausführlichere Informationen hierzu findet man in der Manpage: man apt_preferences oder im APT HOWTO 🇬🇧 .


Diese Revision wurde am 30. Dezember 2008 14:11 von Lux erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Paketverwaltung, Installation