Übersetzung(en): englisch - italienisch


Dieser Artikel versucht zu erklären, wie die Apt-Einstellungen verwendet werden. Bis jetzt ist nur Apt-Pinning hier dokumentiert.

Anmerkung zur deutschen Übersetzung: an manchen Stellen ist von "Beschränkung" die Rede, dies entspricht (an den meisten Stellen) dem englischen "pin".

Pinning

Bevor Sie über 'Pinning' nachdenken, sollten Sie prüfen, ob das Paket bereits für ihre Version in Debian Backports bereitgestellt wurde.

<!> Wenn Apt-Pinning benutzt wird, müssen Sie die Kompatibilität der Pakete selbst überprüfen, da Debian dies nicht garantiert. Bedenken Sie, dass Apt-Pinning völlig optional ist und Debian schlägt dessen Verwendung nicht ohne gründliche Überlegung vor.

Pinning erlaubt es Ihnen gewisse Pakete aus einer bestimmten Version zu verwenden (Stable, Testing, Unstable), ohne die Notwendigkeit das ganze System zu aktualisieren.

In der einfachsten Variante werden für Pinning zwei Dateien benötigt, /etc/apt/sources.list und /etc/apt/preferences.

Eine zusätzliche Rolle spielt die Zielveröffentlichung (Target Release) welche in /etc/apt/apt.conf (oder in einer Datei unterhalb /etc/apt/conf.d/... und der Apt-Kommandozeile) gesetzt werden kann.

/etc/apt/sources.list

 #### testing  #########
 deb http://ftp.us.debian.org/debian testing main contrib non-free

 #### unstable #########
 deb http://ftp.us.debian.org/debian unstable main contrib non-free

In diesem Beispiel laden wir von Testing und Unstable herunter. Sie können dies natürlich dahingehend abändern, dass auch aus Stable geladen wird.

/etc/apt/preferences

Die Datei 'preferences (Einstellungen)' ist der Ort, an dem das tatsächliche 'Pinning' statt findet. Hier ist ein Beispiel:

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

 Package: *
 Pin: release n=unstable
 Pin-Priority: 800

Package ist hier Standard für alle Pakete, angegeben durch den Stern. Pin gibt die Veröffentlichung (Release) an (Testing und Unstable). Pin-Priority gibt die Priorität an. 'apt-get' hat die Voreinstellung, dass die Pakete mit höchster Priorität "gewinnen". Das obige restrukturiert diese Priorität, sodass Pakete aus Testing eine höhere Priorität bekommen.

Weiteres können Sie im apt_preferences(5) Handbuch nachlesen.

Installation von Unstable

Lassen Sie uns annehmen, dass wir Testing verwenden und wir Enlightenment aus Unstable möchten. Es gibt grundsätzlich zwei Methoden für die Installation:

 # apt-get install enlightenment/unstable
 # apt-get -t unstable install enlightenment

Das erste Beispiel wird nicht versuchen irgendwelche Pakete auf Ihrem System zu aktualisieren; wenn bestimmte Abhängigkeiten verletzt werden, schlägt die Installation fehl. Die zweite Methode wird versuchen, jegliche Abhängigkeiten zu aktualisieren/installieren. Bei der obigen Prozedur wird Sie 'apt-get' natürlich vor dem Fortfahren fragen.

Anmerkungen von JoshuaRodman

Ich persönlich fand die übliche Konfiguration mit Testing mit höherer Priorität und Unstable mit niedrigerer Priorität problematisch. Manchmal hängen Testingpakete von Paketen ab, die momentan nicht in Testing sind (eventuell ein Beispiel für kurzzeitige Störungen), was dazu führt, dass Pakete einfach automatisch aus Unstable gezogen werden. Im Zeitraum von Testing vor der Stabilisierung für die stabile Version Woody, führte dies dazu, dass über 100 Unstable-Pakete installiert waren, ohne dass man dies wusste.

Das Resultat ist, dass ich eine konservativere "Nur wenn ich es sage"-Herangehensweise für eine gemischte Distribution verwende mit ungefähr so einer Pin-Datei:

  Package: *
  Pin: release a=testing
  Pin-Priority: 900

  Package: *
  Pin: release o=Debian
  Pin-Priority: -10

Daraus ergibt sich, dass alle Debianpakete standardmäßig eine Priorität von -10 haben, während Testing einen Bonus von 900 erhält. Das führt zu folgendem Verhalten:

Aus apt_preferences(5)

       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
  [...]
       P < 0
           verhindert das Installieren der Version

Angemerkt sei, dass eine Priorität über 1000 sogar die Installation einer älteren Version ermöglicht (Downgrade), egal welche Priorität das Paket hat. Das bedeutet, dass Sie die Priorität 1001 für eine stabile Quelle (Stable) nutzen können, wenn Sie ältere (stabile) Versionen der installierten Pakete für Ihr System wünschen (beispielsweise von Testing). Dies wird nicht empfohlen, außer die Anzahl der Änderungen ist gering.

Die Installation mittels apt-get install paketname/unstable und apt-get install -t unstable paketname werden beide weiterhin funktionieren, aber nur Pakete aus Unstable werden durch diese Kommandos installiert.

Anmerkungen von ZugSchlus

Keine Haftung

Das englischsprachige Original dieser Seite wurde von ZugSchlus geschrieben, welcher nicht einmal entfernt das Konzept von Pinning versteht. Nehmen Sie daher die Worte "wahrscheinlich", "muss bestätigt werden" und ähnliche Ausdrücke wörtlich und dokumentieren Sie Ihre Funde (mögen diese auch "diese Seite stimmt" oder "diese Seite liegt falsch", optional "diese Seite liegt falsch in Hinsicht auf ...") sein, hier.

Die Deutsche Übersetzung ist irreführend und verwirrend. Bitte die englische Variante lesen.

Beschreibung des Prozesses der Paketauswahl

ToDo: Dies muss überprüft werden

Beispiele der Datei /etc/apt/preferences

Beispiel 1

 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
 Pin-Priority: -1

ZugSchlus versucht zu erklären:

Problem: Diese Beschränkung kann sich anders verhalten, abhängig von der gesetzten Zielveröffentlichung in anderen Teilen der Apt-Konfiguration. Daher kann dieses Beispiel nicht wirklich dokumentiert werden, ohne mehr Informationen hinzuzufügen. Ein nicht beschränktes Paket welches ein Teil der Zielveröffentlichung hat die Standardpriorität 990, während andere nicht beschränkte Pakete lediglich eine Priorität von 500 haben.

Beispiel 2

Ziel: Ziehe auf einem Unstable-System Dpatch von Experimental.

Eine mögliche (und nicht völlig korrekte) Lösung:

Beispiel 3

Von Mihamina rakotomandimby

Nehmen Sie an, dass Sie ein eigenes Repositorium haben, wo Sie eine persönliche Version von Postfix haben. Sie wünschen von Apt, dass es Ihre Version vor offiziellen bevorzugt.

Sie können die Einstellungen auf "origin" (Herkunft) setzen:

Package: *
Pin: origin www.rktmb.org
Pin-Priority: 610

Package: *
Pin: origin ftp.fr.debian.org
Pin-Priority: 600

Fehlersuche

apt-cache policy package liefert Informationen über den Auswahlprozess. Leider ist nicht allgemein bekannt, was die Ausgabe meint. Das folgende ist ein Interpretationsversuch:

 $ apt-cache policy exim4-daemon-light
 exim4-daemon-light
  Installiert: 4.50-1
  Kandidat: 4.50-1
  Paket-Pin: (nicht gefunden)
  Versionstabelle:
      4.50-4 555
        500 http://mirror sid/main Packages
  *** 4.50-1 555
        100 /var/lib/dpkg/status
      4.44-2 555
        500 http://mirror sarge/main Packages

Die Priorität jeder Version/jedes Ortes ist die Nummer links davon. In diesem Fall 500, 100, 500. Es ist unklar, was die Nummer rechts von der Versionsnummer bedeutet. Einige Leute glauben, dass es lediglich die letzte Periode für das Paket ist, welche in /etc/apt/preferences für das Paket angegeben wurde, während andere glauben, es sei die tatsächliche Beschränkungspriorität des Pakets.

ToDo: Dieser Abschnitt wurde nach mehr oder weniger wissenden Annahmen geschrieben. Könnte dies jemand mit realer Kenntnis über Apt bitte nachprüfen?

Anmerkungen von Ryan B.

Wenn Sie sich aufgrund des Links http://www.debian.org/doc/manuals/repository-howto/repository-howto fragen, was die Optionen für Veröffentlichungsdaten basierend auf obigen Link sind, so finden wir:

Archive: Archiv

Component: Komponente

Origin: Ihre Firma

Label: Ihr firmeneigenes Debian-Repositorium

Architecture: Architektur

Daher würde die Zeile "Pin: release a=testing" Archivwerte in der Veröffentlichungsdatei finden, welche Testing heißt.

Verweise