Warum wird dieser passende Pinning-Stick nicht?


7

Ich würde die Installation in Nginx von Squeeze-Backports der Installation in Mainline Stable vorziehen. Ich habe das Backports-Repository aktiviert. Ich habe diese Einstellungsdatei:

# /etc/apt/preferences.d/nginx
Package: nginx nginx-common
Pin: release a=squeeze-backports
Pin-Priority: 999

Das Festlegen des Ziels funktioniert wie erwartet:

# aptitude install -t squeeze-backports nginx
The following NEW packages will be installed:
  libgd2-noxpm{a} libgeoip1{a} libjpeg62{a} libpcre3{a} libxml2{a} libxslt1.1{a} nginx nginx-common{a} nginx-full{a} 
The following packages are RECOMMENDED but will NOT be installed:
  geoip-database xml-core 
0 packages upgraded, 9 newly installed, 0 to remove and 39 not upgraded.
Need to get 828 kB/2,235 kB of archives. After unpacking 4,985 kB will be used.
Do you want to continue? [Y/n/?]

aber ohne Ziel nicht:

# aptitude install nginx
The following NEW packages will be installed:
  libgeoip1{a} libpcre3{a} nginx 
The following packages are RECOMMENDED but will NOT be installed:
  geoip-database 
0 packages upgraded, 3 newly installed, 0 to remove and 25 not upgraded.
Need to get 339 kB/694 kB of archives. After unpacking 1,667 kB will be used.
Do you want to continue? [Y/n/?]

apt_preferences (5) Einzelheiten zum Algorithmus für die Entscheidung, welche Paketversion installiert werden soll:

Wenn die Zielversion angegeben wurde, verwendet APT den folgenden Algorithmus, um die Prioritäten der Versionen eines Pakets festzulegen. Zuordnen:

Priorität 1 :: für die Versionen aus Archiven, die in ihren Release-Dateien als "NotAutomatic: yes", aber nicht als "ButAutomaticUpgrades: yes" gekennzeichnet sind, wie das experimentelle Debian-Archiv.

Priorität 100 :: für die bereits installierte Version (falls vorhanden) und für die Versionen aus Archiven, die in ihren Release-Dateien als "NotAutomatic: yes" und "ButAutomaticUpgrades: yes" gekennzeichnet sind, wie das Debian-Backports-Archiv seit Squeeze-Backports .

Priorität 500 :: für die Versionen, die nicht installiert sind und nicht zur Zielversion gehören.

Priorität 990 :: für die Versionen, die nicht installiert sind und zur Zielversion gehören.

Wenn die Zielversion nicht angegeben wurde, weist APT allen installierten Paketversionen einfach die Priorität 100 und allen deinstallierten Paketversionen die Priorität 500 zu, mit Ausnahme der Versionen aus Archiven, die in ihren Release-Dateien als "NotAutomatic: yes" gekennzeichnet sind - diese Versionen erhalten die Priorität 1 oder Priorität 100, wenn sie zusätzlich als "ButAutomaticUpgrades: yes" gekennzeichnet ist.

APT wendet dann die folgenden Regeln an, die in der Rangfolge aufgeführt sind, um zu bestimmen, welche Version eines Pakets installiert werden soll.

  • Führen Sie niemals ein Downgrade durch, es sei denn, die Priorität einer verfügbaren Version überschreitet 1000. ("Downgrade" installiert eine weniger aktuelle Version eines Pakets anstelle einer neueren Version. Beachten Sie, dass keine der Standardprioritäten von APT 1000 überschreitet. Solche hohen Prioritäten können nur festgelegt werden Beachten Sie auch, dass ein Downgrade eines Pakets riskant sein kann.)

  • Installieren Sie die Version mit der höchsten Priorität.

usw. Sie können das Ganze hier lesen . Nach meinem Verständnis ist Priorität 999 diese derzeit höchste Priorität, und der Nginx aus Squeeze-Backports sollte bevorzugt werden. Es ist eindeutig nicht. Vielleicht steckt der Teufel im Detail - ich bin mir nicht sicher, ob das Nginx-Paket mit NotAutomatic oder ButAutomaticUpgrades gekennzeichnet ist oder wie man das feststellt - aber die Beispiele später auf der Manpage deuten darauf hin, dass ich das Richtige getan habe. Noch

# apt-cache policy nginx
nginx:
  Installed: (none)
  Candidate: 1.1.8-2~bpo60+1
  Package pin: 1.1.8-2~bpo60+1
  Version table:
     1.1.8-2~bpo60+1 999
        100 http://backports.debian.org/debian-backports/ squeeze-backports/main i386 Packages
     0.7.67-3+squeeze1 999
        500 http://debian.osuosl.org/debian/ squeeze/main i386 Packages

Priorität 100 für das Paket, das ich wünsche. Was gibt?

Antworten:


4

Ist es möglich, dass Sie von diesem Fehler gebissen werden ?

Auf einem gemischten Sid / Testing-System verhält sich derselbe Text anders, unabhängig davon, ob er in / etc / apt / settings oder in /etc/apt/preferences.d/pinning platziert ist.

apt-get respektiert Dateien, die an einem der beiden Speicherorte abgelegt sind, und die apt-cache-Richtlinie zeigt auch das erwartete Verhalten an. Eignung allein verhält sich so.

Ich habe das gleiche Verhalten in Version 0.4.11.11-1 + b2 gesehen und versucht, ein Upgrade auf 0.6.1.3-3 durchzuführen, um festzustellen, ob es in sid behoben wurde, aber das Fehlverhalten bleibt bestehen.

Laut dem neuesten Update ist dies fixed in aptitude 0.6.3-3.2


Hmm, weißt du, ich denke du hast es verstanden. Seltsam, apt-cache policydass keine Änderungen an der Paketpriorität vorgenommen werden - obwohl dies der Fall ist und ich dies übersehen habe, legen Sie das richtige Kandidatenpaket fest. Die Verwendung von Straight Apt-Get verringert das Problem.
Forellenwein
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.