Auflösung von APT-Pinning-Abhängigkeiten

Ich versuche zu beherrschen, wie das APT-Pinning unter Debian funktioniert, aber es fällt mir schwer zu verstehen, wie es Prioritäten auflöst.

Ich habe eine source.list -Datei mit den folgenden Einträgen in genau dieser Reihenfolge:

deb <repository> stretch main deb <repository> testing main deb <repository> unstable main 

Das folgende Repository enthält diese Pakete pro Zweig:

  • Stretch enthält das Paket dependency version 1.0;
  • Testen enthält das Paket dependency version 2.0;
  • unstable enthält die Pakete program und dependency version 2.0;

Das Paket program hängt von dependency version 2.0 ab.

Ich muss das installieren Paket program, aber ich möchte so wenige Pakete wie möglich von unstable installieren, also erstelle ich das folgende preferences Datei zum Anheften dieses Zweigs:

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

Wenn ich verstehe Wenn es richtig funktioniert, sollte es Pakete von unstable nur dann installieren, wenn ich APT ausdrücklich dazu auffordere.

Ich erstelle auch eine apt.conf -Datei, um sicherzustellen, dass der Zweig stable die Standardeinstellung ist:

APT::Default-Release "stable"; 

Nach dem Ausführen des Befehls apt-get update, die Zweige sollten die folgenden Prioritäten haben:

stable: 990 testing: 500 unstable: -1 

Jetzt möchte ich das Paket , um dies zu tun, führe ich den folgenden Befehl aus:

apt-get install -t unstable program 

Nun ist meine Frage, aus welchem Zweig APT den ziehen wird Paket dependency version 2.0? Da sowohl testing als auch unstable dieselbe Version des Pakets haben, welche wird ausgewählt?

Wenn ich Wenn Sie richtig verstehen, setzt APT mit der Option -t unstable den Paketen, die zu unstable gehören, eine 990-Priorität, aber nach meinen Erfahrungen wird es von testing abgerufen.

Warum zieht APT also Pakete von testing mit einer Priorität von 500 während unstable auf 990 gesetzt ist? Was wäre auch der optimale Weg, um so wenige Pakete wie möglich von unstable zu installieren?

Kommentare

  • Wenn die Version identisch ist, ist die Datei auch dieselbe . Apt wählt die schnellste oder die erste definierter Spiegel, aber die URL der heruntergeladenen Datei ist dieselbe. Überprüfen Sie sie selbst. Debian-Repositorys speichern ' nicht zwei identische Dateien / Versionen eines Pakets aufgrund von Speicherplatzproblemen.

Antwort

Dies wird in manpage :

In der Datei sources.list (5) stehen möglicherweise mehrere Versionen eines Pakets zur Installation zur Verfügung enthält Verweise auf mehr als eine Distribution (z. B. Stable und Testing). APT weist jeder verfügbaren Version eine Priorität zu. Vorbehaltlich der Abhängigkeitsbeschränkungen wählt apt-get die Version mit der höchsten Priorität für die Installation aus. Die APT-Einstellungen überschreiben standardmäßig die Prioritäten, die APT Paketversionen zuweist, und geben dem Benutzer somit die Kontrolle darüber, welche für die Installation ausgewählt wird.

Bei den Quellen sind möglicherweise mehrere Instanzen derselben Version eines Pakets verfügbar Die Datei .list (5) enthält Verweise auf mehr als eine Quelle. In diesem Fall lädt apt-get die Instanz herunter, die am frühesten in der Datei sources.list (5) aufgeführt ist. Die APT-Einstellungen wirken sich nicht auf die Auswahl der Instanz aus, sondern nur auf die Auswahl der Version.

Prioritäten bestimmen nur, welche Version (wie durch die Versionsnummer angegeben) von Ein Paket ist installiert. Sobald dies festgelegt ist, wird das erste verfügbare Paket-Repository zum Herunterladen verwendet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.