APT_PREFERENCES(5)

NAME
apt_preferences - Voreinstellungssteuerdatei für APT

BESCHREIBUNG

Die APT-Einstellungsdatei /etc/apt/preferences und Teildateien im Verzeichnis /etc/apt/preferences.d/ können benutzt werden, um zu steuern, welcher Versionen von Paketen zur Installation ausgewählt werden.

Es könnten mehrere Versionen eines Pakets zur Installation verfügbar sein, wenn die Datei sources.list(5) Bezüge zu mehr als einer Distribution enthält (zum Beispiel stable und testing). APT weist jeder verfügbaren Version eine Priorität zu. Abhängig von Abhängigkeitsbedingungen, wählt apt-get die Version mit der höchsten Priorität zur Installation aus. Die APT-Einstellungsdatei überschreibt die Prioritäten, die APT den Paketversionen standardmäßig zuweist, was dem Anwender die Kontrolle darüber gibt, welche zur Installation ausgewählt wird.

Es könnten mehrere Instanzen der gleichen Version eines Paketes verfügbar sein, wenn die Datei sources.list(5) Bezüge zu mehr als einer Distribution enthält. In diesem Fall lädt apt-get die Instanz herunter, die in der Datei sources.list(5) als erstes aufgelistet ist. Die APT-Einstellungsdatei beeinflusst die Wahl der Instanz nicht, nur die Wahl der Version.

Note that the files in the /etc/apt/preferences.d directory are parsed in alphanumeric ascending order and need to obey the following naming convention: The files have no or "pref" as filename extension and which only contain alphanumeric, hyphen (-), underscore (_) and period (.) characters - otherwise they will be silently ignored.

  APTs Standardprioritätszuweisungen

Wenn es keine Einstellungsdatei gibt oder es in der Datei keinen Eintrag gibt, der sich auf eine bestimmte Version bezieht, dann ist die dieser Version zugewiesene Priorität, die Priorität der Distribution zu der die Version gehört. Es ist möglich eine Distribution auszuzeichnen, »das Ziel-Release«, die eine höhere Priorität erhält, als dies andere Distributionen standardmäßig tun. Das Ziel-Release kann auf der apt-get-Befehlszeile oder in der APT-Konfigurationsdatei /etc/apt/apt.conf gesetzt werden. Beachten Sie, dass dies Vorrang vor einer allgemeinen Priorität hat, die Sie, wie später beschrieben, in der Datei /etc/apt/preferences setzen, aber nicht vor bestimmten mit Pinning gewichteten Paketen. Beispielsweise

    apt-get install -t testing irgendein_Paket

    APT::Default-Release "stable";

Wenn das Ziel-Release angegeben wurde, dann benutzt APT den folgenden Algorithmus, um die Prioritäten der Versionen eines Paketes zu setzen. Zuweisung:

Priorität 100
    zu der Version, die bereits installiert ist (wenn vorhanden).

Priorität 500
    zu den Versionen, die nicht installiert sind und die nicht zum Ziel-Release gehören.

Priorität 990
    zu den Versionen, die nicht installiert sind und zum Ziel-Release gehören.

Wenn das Ziel-Release nicht angegeben wurde, dann weist APT einfach allen installierten Paketversionen eine Priorität von 100 und allen nicht installierten Paketversionen eine Priorität von 500 zu.

APT wendet dann die folgenden Regeln an, aufgelistet in der Reihenfolge ihres Vorrangs, um zu bestimmen in welcher Version das Paket zu installieren ist.

    • Führen Sie niemals ein Downgrade durch, außer wenn die Priorität verfügbarer Pakete 1000 übersteigt. (»Downgrading« ist das Installieren einer weniger aktuellen Version, an Stelle einer aktuelleren Version. Beachten Sie, dass keine Standardpriorität von APT 1000 übersteigt. So hohe Prioritäten können nur durch die Einstellungsdatei gesetzt werden. Beachten Sie außerdem, dass Downgrading eines Paketes riskant sein kann.)

    • Die Version mit der höchsten Priorität installieren.

    • Wenn zwei oder mehr Versionen die gleiche Priorität haben, wird die aktuellste installiert (das ist die mit der höheren Versionsnummer).

    • Wenn zwei oder mehr Versionen die gleiche Priorität und Versionsnummer haben, die Pakete sich aber entweder in ihren Metadaten unterscheiden oder die Option --reinstall angegeben wurde, wird die nicht installierte installiert.

In einer typischen Situation ist die Version eines Paketes (Priorität 100) nicht so aktuell, wie eine der verfügbaren Versionen, die in der Quellliste der Datei sources.list(5) steht (Priorität 500 oder 900). Dann wird ein Upgrade des Pakets durchgeführt, wenn apt-get install irgendein_Paket oder apt-get upgrade ausgeführt wird.

Seltener ist die installierte Version eines Pakets neuer, als jede andere der verfügbaren Versionen. Für das Paket wird kein Downgrade durchgeführt, wenn apt-get install irgendein_Paket oder apt-get upgrade ausgeführt wird.

Manchmal ist die installierte Version eines Pakets aktueller, als die Version, die zum Ziel-Release gehört, aber nicht so aktuell, wie eine Version, die zu einer anderen Distribution gehört. Für ein derartiges Paket wird tatsächlich ein Upgrade durchgeführt, wenn apt-get install irgendein_Paket oder apt-get upgrade ausgeführt wird, weil mindestens eine der verfügbaren Versionen eine höhere Priorität als die installierte Version hat.

  Die Auswirkungen von APT-Einstellungen

Die APT-Einstellungsdatei erlaubt einem Systemverwalter die Zuweisung von Prioritäten zu steuern. Die Datei besteht aus einem oder mehreren mehrzeiligen Datensätzen, die durch leere Zeilen getrennt sind. Datensätze können eine von zwei Gestalten haben, eine spezielle Gestalt oder eine allgemeine Gestalt.

    • Die spezielle Form weist die Priorität (eine »Pin-Priorität«) einem oder mehreren angegebenen Paketen und angegebenen Versionen oder Versionsbereichen zu. Der folgende Datensatz weist zum Beispiel allen Versionen des perl-Pakets eine höhere Priorität zu, deren Versionsnummer mit »5.8« beginnt. Mehrere Pakete können durch Leerzeichen getrennt werden.

        Package: perl
        Pin: version 5.8*
        Pin-Priority: 1001

    • Die allgemeine Form weist allen Paketversionen in einer gegebenen Distribution (d.h. alle Versionen von Paketen, die in einer bestimmten Release-Datei gelistet sind) oder allen Paketversionen, die von einer speziellen Internet-Site kommen, die durch ihren voll ausgebildeten Domänennamen identifiziert wird, eine Priorität zu.

    Dieser Eintrag in allgemeiner Form in der APT-Einstellungsdatei verwendet nur Gruppen von Paketen. Der folgende Eintrag weist zum Beispiel allen Paketversionen eine hohe Priorität zu, die lokal liegen.

        Package: *
        Pin: origin ""
        Pin-Priority: 999

    Ein Wort der Warnung: Das hier benutzte Schlüsselwort ist »origin«. Dies sollte nicht mit der Herkunft einer Distribution verwechselt werden, wie sie in einer Release-Datei angegeben wurde. Was dem »Origin:«-Kennzeichen in einer Release-Datei folgt, ist keine Internet-Adresse, sondern ein Autoren- oder Anbietername, wie »Debian« oder »Ximian«.

    Der folgende Datensatz weist allen Paketversionen, die zu Distributionen gehören, deren Archivname »unstable« ist, eine niedrige Priorität zu.

        Package: *
        Pin: release a=unstable
        Pin-Priority: 50

    Der folgende Datensatz weist allen Paketversionen, die zu einer Distribution gehören, deren Codename »squeeze« ist, eine hohe Priorität zu.

        Package: *
        Pin: release n=squeeze
        Pin-Priority: 900

    Der folgende Datensatz weist allen Paketversionen, die zu einer Distribution gehören, deren Archivname »stable« und deren Release-Nummer »3.0« ist, eine hohe Priorität zu.

        Package: *
        Pin: release a=stable, v=3.0
        Pin-Priority: 500

  Wie APT Prioritäten interpretiert

Die in der APT-Einstellungsdatei zugewiesenen Prioritäten (P) müssen positive oder negative Ganzzahlen sein. Sie werden wie folgt interpretiert (grob gesagt):

P > 1000
    veranlasst, dass eine Version installiert wird, auch wenn dies ein Downgrade des Pakets durchführt

990 < P <=1000
    veranlasst, dass eine Version installiert wird, auch wenn diese nicht vom Ziel-Release kommt, außer wenn die installierte Version aktueller ist

500 < P <=990
    veranlasst, dass eine Version installiert wird, außer wenn eine Version verfügbar ist, die zum Ziel-Release gehört oder die installierte Version neuer ist

100 < P <=500
    veranlasst, dass eine Version installiert wird, außer wenn eine Version verfügbar ist, die zu einer anderen Distribution gehört oder die installierte Version neuer ist

0 < P <=100
    veranlasst, dass eine Version nur dann installiert wird, wenn es keine installierte Version des Pakets gibt

P < 0
    verhindert das Installieren der Version

Wenn irgendwelche Datensätze mit speziellem Format zu einer verfügbaren Paketversion passen, dann legt der erste dieser Datensätze die Priorität der Paketversion fest. Schlägt dies fehl und es passen irgendwelche Datensätze mit allgemeinem Format zu einer verfügbaren Paketversion, dann legt der erste dieser Datensätze die Priorität der Paketversion fest.

Nehmen wir zum Beispiel an, die APT-Einstellungsdatei enthält die drei bereits gezeigten Datensätze:

    Package: perl
    Pin: version 5.8*
    Pin-Priority: 1001
    Package: *
    Pin: origin ""
    Pin-Priority: 999
    Package: *
    Pin: release unstable
    Pin-Priority: 50

Dann:

    • Es wird die aktuellste verfügbare Version des Pakets perl installiert, so lange die Versionsnummer mit »5.8« anfängt. Wenn irgendeine 5.8*-Version von perlverfügbar ist und die installierte Version 5.9* ist, dann wird von perl ein Downgrade durchgeführt.

    • Eine Version irgendeines anderen Pakets als perl, die vom lokalen System verfügbar ist, hat eine Priorität über anderen Versionen, sogar wenn diese Versionen zum Ziel-Release gehören.

    • Eine Version eines Pakets, dessen Ursprung nicht das lokale System ist, aber ein anderer in sources.list(5) aufgelisteter Ort und der zu einer unstable-Distribution gehört. wird nur installiert, falls es zur Installation ausgewählt wurde und nicht bereits eine Version des Pakets installiert ist.

  Festlegung von Paketversion und Distributions-Eigenschaften

Die in der sources.list(5)-Datei aufgelisteten Orte sollten Packages- und Release-Dateien bereitstellen, um die an diesem Ort verfügbaren Pakete zu beschreiben.

Die Packages-Datei wird normalerweise im Verzeichnis .../dists/Distributions-Name/Komponente/Architektur gefunden, zum Beispiel .../dists/stable/main/binary-i386/Packages. Sie besteht aus einer Serie mehrzeiliger Datensätze, einem für jedes verfügbare Paket in diesem Verzeichnis. In jedem Datensatz sind nur zwei Zeilen zum Setzen der APT-Prioritäten relevant:

die Package:-Zeile
    gibt den Paketnamen an

die Version:-Zeile
    gibt die Versionsnummer für das genannte Paket an

Die Release-Datei ist normalerweise im Verzeichnis .../dists/Distributionsname zu finden, zum Beispiel .../dists/stable/Release oder .../dists/woody/Release. Es besteht aus einem einzelnen mehrzeiligen Datensatz, der auf alle Pakete im Verzeichnisbaum unterhalb des übergeordneten Verzeichnisses zutrifft. Anders als die Packages-Datei sind nahezu alle Zeilen in einer Release-Datei für das Setzen von APT-Prioritäten relevant:

die Archive:- oder Suite:-Zeile
    benennt das Archiv, zu dem alle Pakete im Verzeichnisbaum gehören. Die Zeile »Archive: stable« oder »Suite: stable« gibt zum Beispiel an, dass alle Pakete im Verzeichnisbaum unterhalb des der Release-Datei übergeordneten Verzeichnisses sich in einem stable-Archiv befinden. Diesen Wert in der APT-Einstellungsdatei anzugeben würde die folgende Zeile benötigen:

        Pin: release a=stable

die Codename:-Zeile
    benennt den Codenamen, zu dem alle Pakete im Verzeichnisbaum gehören. Die Zeile »Codename: squeeze« gibt zum Beispiel an, dass alle Pakete im Verzeichnisbaum unterhalb des der Release-Datei übergeordneten Verzeichnisses zu einer Version mit Namen squeeze gehören. Diesen Wert in der APT-Einstellungsdatei anzugeben würde die folgende Zeile benötigen:

        Pin: release n=squeeze

die Version:-Zeile
    benennt die Release-Version. Die Pakete im Baum könnten zum Beispiel zur Debian GNU/Linux-Release-Version 3.0 gehören. Beachten Sie, dass es normalerweise keine Versionsnummer für testing- und unstable-Distributionen gibt, weil sie noch nicht veröffentlicht wurden. Diese in der APT-Einstellungsdatei anzugeben würde eine der folgenden Zeilen benötigen:

        Pin: release v=3.0
        Pin: release a=stable, v=3.0
        Pin: release 3.0

die Component:-Zeile
    benennt die Lizenzierungskomponente, die mit den Paketen im Verzeichnisbaum der Release-Datei verbunden ist. Die Zeile »Component: main« gibt zum Beispiel an, dass alle Pakete im Verzeichnisbaum von der main-Komponente stammen, was zur Folge hat, dass sie unter den Bedingungen der Debian-Richtlinien für Freie Software stehen. Diese Komponente in der APT-Einstellungsdatei anzugeben würde die folgende Zeilen benötigen:

        Pin: release c=main

die Origin:-Zeile
    benennt den Urheber des Pakets im Verzeichnisbaum der Release-Datei. Zumeist ist dies Debian. Diesen Ursprung in der APT-Einstellungsdatei anzugeben würde die folgende Zeile benötigen:

        Pin: release o=Debian

die Label:-Zeile
    benennt die Beschriftung des Pakets im Verzeichnisbaum der Release-Datei. Zumeist ist dies Debian. Diese Beschriftung in der APT-Einstellungsdatei anzugeben würde die folgende Zeile benötigen:

        Pin: release l=Debian

Alle Packages- und Release-Dateien, die von Orten heruntergeladen werden, die in der Datei sources.list(5) aufgelistet sind, werden im Verzeichnis /var/lib/apt/lists oder in der von der Variablen Dir::State::Lists in der Datei apt.conf benannten Datei gespeichert. Die Datei debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release enthält zum Beispiel die Release-Datei, die von der Site debian.lcs.mit.edu für die binary-i386-Architekturdateien von der contrib-Komponente der unstable-Distribution heruntergeladen wurde.

  Optionale Zeilen in einem APT-Einstellungsdatensatz

Optional kann jeder Datensatz im der APT-Einstellungsdatei mit einer oder mehreren Zeilen beginnen, die mit dem Wort Explanation: anfangen. Dieses stellt einen Platz für Kommentare bereit.

Die Pin-Priority:-Zeile in jedem APT-Einstellungsdatensatz ist optional. Wenn diese weggelassen wird, weist APT ein Priorität zu, die um 1 kleiner ist, als der letzte Wert, der in einer Zeile angegeben wurde, die mit Pin-Priority: release ... anfängt.

BEISPIELE

  Stable verfolgen

Die folgende APT-Einstellungsdatei wird APT veranlassen, allen Paketversionen eine höhere Priorität als die Vorgabe (500) zu geben, die zu einer stable-Distribution gehören und eine ungeheuer niedrige Priorität Paketversionen, die zu anderen Debian-Distribution gehören.

    Explanation: Deinstallieren oder nicht installieren von anderen von Debian
    Explanation: stammenden Paketversionen, als denen der Stable-Distribution
    Package: *
    Pin: release a=stable
    Pin-Priority: 900
    Package: *
    Pin: release o=Debian
    Pin-Priority: -10

Mit einer geeigneten sources.list(5)-Datei und der obigen Einstellungsdatei wird jeder der folgenden Befehle APT veranlassen, ein Upgrade auf die neuste(n) stable-Version(en) durchzuführen.

    apt-get install Paketname
    apt-get upgrade
    apt-get dist-upgrade

Der folgende Befehl wird APT veranlassen, ein Upgrade des angegebenen Pakets auf die neuste Version der testing-Distribution durchzuführen. Von dem Paket wird kein weiteres Upgrade durchgeführt, außer wenn dieser Befehl wieder angegeben wird.

    apt-get install Paket/testing

  Testing oder Unstable verfolgen

Die folgende APT-Einstellungsdatei wird APT veranlassen, Paketversionen der testing-Distribution eine hohe Priorität, Paketversionen der unstable-Distribution eine niedrigere Priorität und eine ungeheuer niedrige Priorität zu Paketversionen von anderen Debian-Distributionen zuzuweisen.

    Package: *
    Pin: release a=testing
    Pin-Priority: 900
    Package: *
    Pin: release a=unstable
    Pin-Priority: 800
    Package: *
    Pin: release o=Debian
    Pin-Priority: -10

Mit einer geeigneten sources.list(5)-Datei und der obigen Einstellungsdatei wird jeder der folgenden Befehle APT veranlassen, ein Upgrade auf die neuste(n) testing-Version(en) durchzuführen.

    apt-get install Paketname
    apt-get upgrade
    apt-get dist-upgrade

Der folgende Befehl wird APT veranlassen, ein Upgrade des angegebenen Pakets auf die neuste Version der unstable-Distribution durchzuführen. Danach wird apt-get upgrade ein Upgrade des Pakets auf die aktuellste testing-Version durchführen, falls diese aktueller als die installierte Version ist, andernfalls auf die aktuellste unstable-Version, wenn diese aktueller als die installierte Version ist.

    apt-get install Paket/unstable

  Die Entwicklung eines Codename-Releases verfolgen

Die folgende APT-Einstellungsdatei wird APT veranlassen, allen Paketen, die zu einem bestimmten Codenamen einer Distribution gehören, eine höhere Priorität als die Vorgabe (500) zu geben und Paketversionen, die zu anderen Debian-Distributionen, Codenamen und Archiven gehören, eine ungeheuer niedrige Priorität zu geben. Beachten Sie, dass APT mit diesen APT-Einstellungen der Migration eines Releases vom Archiv testing zu stable und später zu oldstable folgen wird. Wenn Sie zum Beispiel dem Fortschritt in testing folgen möchten, obwohl der Codename sich ändert, sollten Sie die Beispielkonfigurationen oberhalb benutzen.

    Explanation: Deinstallieren oder nicht installieren von anderen von Debian
    Explanation: stammenden Paketversionen, als denen der Squeeze- oder Sid-Distribution
    Package: *
    Pin: release n=squeeze
    Pin-Priority: 900
    Explanation: Debian-Unstable hat immer den Codenamen sid
    Package: *
    Pin: release a=sid
    Pin-Priority: 800
    Package: *
    Pin: release o=Debian
    Pin-Priority: -10

Mit einer geeigneten sources.list(5)-Datei und der obigen Einstellungsdatei wird jeder der folgenden Befehle APT veranlassen, ein Upgrade auf die letzte(n) Version(en) im Release mit Codenamen squeeze durchzuführen.

    apt-get install Paketname
    apt-get upgrade
    apt-get dist-upgrade

Der folgende Befehl wird APT veranlassen, ein Upgrade des angegebenen Pakets auf die letzte Version der sid-Distribution durchzuführen. Danach wird apt-get upgrade ein Upgrade des Pakets auf die aktuellste squeeze-Version durchführen, wenn diese aktueller als die installierte Version ist, andernfalls auf die aktuellste sid-Version, wenn diese aktueller als die installierte Version ist.

    apt-get install Paket/sid

DATEIEN

/etc/apt/preferences
    Version-Einstellungsdatei. Hier können Sie "pinning" angeben, d.h. eine Einstellung, um bestimmte Pakete aus einer separaten Quelle oder von einer anderen Version einer Distribution zu erhalten. Konfigurationselement: Dir::Etc::Preferences.

/etc/apt/preferences.d/
    Dateifragmente für die Versionseinstellungen. Konfigurationselement: Dir::Etc::PreferencesParts.

SIEHE AUCH

apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)

FEHLER

APT-Fehlerseite[1]. Wenn Sie einen Fehler in APT berichten möchten, lesen Sie bitte /usr/share/doc/debian/bug-reporting.txt oder den reportbug(1)-Befehl. Verfassen Sie Fehlerberichte bitte auf Englisch.

ÜBERSETZUNG

Die deutsche Übersetzung wurde 2009 von Chris Leick c.leick@vollbio.de angefertigt in Zusammenarbeit mit dem Debian German-l10n-Team debian-l10n-german@lists.debian.org.

Note that this translated document may contain untranslated parts. This is done on purpose, to avoid losing content when the translation is lagging behind the original content.

AUTHOR

APT-Team

NOTES

1.  APT-Fehlerseite
    http://bugs.debian.org/src:apt