web-dev-qa-db-fra.com

Attribuer une priorité plus élevée au PPA

J'essaie de comprendre comment attribuer une priorité plus élevée à un PPA par rapport à un autre. J'ai jeté un coup d'œil aux questions sur ce forum, mais aucune d'elles ne résout mon problème.

Nous avons deux sources PPA sur certains de nos serveurs que nous collons dans des fichiers séparés dans /etc/apt/sources.list.d. Certains de ces dépôts fournissent les mêmes packages (en termes de noms) mais des versions différentes et éventuellement des fichiers binaires différents. Existe-t-il un moyen de hiérarchiser une mise en pension sur une autre?

J'ai lu le tutoriel apt_preferences mais il ne pouvait pas être plus obscur et n'a pas trouvé les réponses à ma question. Voici la situation. WE ont les sources suivantes:

$ 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

nginx-source.list contenu est:

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

et Ruby-ng-experimental-source.list le contenu est:

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

Ces deux sources fournissent un package nginx-full de versions différentes, etc. Lorsque je liste les priorités, Ruby-ng-experimental-source.list se trouve au-dessus de la sortie, de sorte que nginx-full est installé à partir de ce référentiel:

$ 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

Comment puis-je prioriser le référentiel répertorié dans nginx-source.list par rapport à celui qui se trouve actuellement en haut de la liste? J'ai essayé quelque chose comme ça:

$ 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

Mais cela a changé les priorités des deux sources vers le même nombre - ou quelque chose comme ça? Donc, cela n'a PAS changé les priorités et nginx-full est toujours en cours d'installation depuis le PPA brightbox

$ 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

Quelqu'un a une idée de la façon de réaliser ce que je tente de faire?

13
gyre

Voici un exemple de /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

Vous devez probablement exécuter apt-get update après avoir créé le fichier.

15

Réponse courte: définissez une priorité d'épinglage inférieure à 0 et définissez o = LP-PPA- *, par ex.

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

Citation de apt_preferences-manpage:

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

Informations complémentaires: http://manpages.ubuntu.com/manpages/raring/en/man5/apt_preferences.5.html et https://help.ubuntu.com/community/ PinningHowto .

3
Clausi