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
où 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?
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.
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 .