Weisen Sie PPA eine höhere Priorität zu

13

Ich versuche herauszufinden, wie einer PPA eine höhere Priorität als einer anderen PPA zugewiesen werden kann. Ich habe ein paar Antworten in diesem Forum durchgesehen, aber keine davon löst mein Problem.

Wir haben zwei PPA-Quellen auf einigen unserer Server, in die wir separate Dateien stecken /etc/apt/sources.list.d. Einige dieser Repos bieten die gleichen Pakete (in Bezug auf Namen), aber unterschiedliche Versionen und möglicherweise unterschiedliche Binärdateien. Gibt es eine Möglichkeit, wie wir ein Repo über ein anderes PRIORISIEREN können?

Ich habe das Tutorial zu apt_preferences gelesen, aber es könnte nicht dunkler sein und ich habe keine Antwort auf meine Frage gefunden. Hier ist die Situation. WIR haben die folgenden Quellen:

$ ls -l /etc/apt/sources.list.d 
total 12
-rw-r--r-- 1 root root 66 Jan  2 16:50 nginx-source.list
-rw-r--r-- 1 root root 84 Jan  2 16:49 ruby-ng-experimental-source.list

Wo der nginx-source.listInhalt ist:

deb     http://ppa.launchpad.net/nginx/stable/ubuntu precise main

und ruby-ng-experimental-source.listInhalt ist:

deb     http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu precise main

Beide Quellen bieten ein nginx-vollständiges Paket mit verschiedenen Versionen usw. Wenn ich die Prioritäten ruby-ng-experimental-source.list aufführe, wird nginx-full von diesem Repository aus installiert:

$ apt-cache policy nginx-full                                 
nginx-full:
  Installed: 1:1.2.3-1~38~precise1
  Candidate: 1:1.2.6-1~43~precise1
  Version table:
     1:1.2.6-1~43~precise1 0
        500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
 *** 1:1.2.3-1~38~precise1 0
        100 /var/lib/dpkg/status
     1.4.1-1ppa0~precise 0
        500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
     1.1.19-1ubuntu0.1 0
        500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
     1.1.19-1 0
        500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages

Wie priorisiere ich das in nginx-source.list aufgeführte Repo vor dem Repo, das jetzt oben auf der Liste steht? Ich habe so etwas ausprobiert:

$ cat /etc/apt/preferences
Package: nginx-full
Pin: origin http://ppa.launchpad.net/nginx/stable/ubuntu
Pin-Priority: 1000

Package: nginx-full
Pin: origin http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu
Pin-Priority: 100

Aber das hat die Prioritäten beider Quellen auf die gleiche Zahl geändert - oder so ähnlich? Dies hat also NICHT die Prioritäten geändert und Nginx-Full wird noch von der Brightbox PPA installiert

$ apt-cache policy nginx-full  
nginx-full:
  Installed: 1:1.2.3-1~38~precise1
  Candidate: 1:1.2.6-1~43~precise1
  Package pin: (not found)
  Version table:
     1:1.2.6-1~43~precise1 1000
        500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
 *** 1:1.2.3-1~38~precise1 1000
        100 /var/lib/dpkg/status
     1.4.1-1ppa0~precise 1000
        500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
     1.1.19-1ubuntu0.1 1000
        500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
     1.1.19-1 1000
        500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages

Hat jemand eine Idee, wie er das erreichen kann, was ich versuche?

gyre
quelle

Antworten:

15

Hier ist ein Beispiel für /etc/apt/preferences

mint@mint ~ $ cat /etc/apt/preferences
Package: *
Pin: release o=linuxmint
Pin-Priority: 700

Package: *
Pin: origin packages.linuxmint.com
Pin-Priority: 700

Package: *
Pin: release o=Ubuntu
Pin-Priority: 500

Sie müssen wahrscheinlich apt-get updatenach dem Erstellen der Datei ausgeführt werden.

GM-Script-Writer-62850
quelle
/ etc / apt / preferences existiert in 13.04 nicht, obwohl /etc/apt/preferences.d/ existiert, ist aber ein leeres Verzeichnis.
Noch ein Benutzer
1
Die Datei ist nicht auf Lager, Sie erstellen es einfach
GM-Script-Writer-62850
3

Kurze Antwort: Setzen Sie die Pinning-Priorität auf weniger als 0 und setzen Sie o = LP-PPA- *, z

Package: nginx-full
Pin: release o=LP-PPA-brightbox-ruby-ng-experimental
Pin-Priority: -10

Zitat aus apt_preferences-manpage:

How APT Interprets Priorities
...
P < 0
prevents the version from being installed

Weitere Informationen: http://manpages.ubuntu.com/manpages/raring/en/man5/apt_preferences.5.html und https://help.ubuntu.com/community/PinningHowto .

Clausi
quelle