Attribuer une priorité plus élevée au PPA

13

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

Nous avons deux sources PPA sur certains de nos serveurs dans lesquels nous collons dans des fichiers séparés /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 binaires différents. Existe-t-il un moyen de hiérarchiser un repo sur un autre?

J'ai lu le tutoriel apt_preferences mais il ne pouvait pas être plus obscur et je n'ai pas trouvé les réponses à ma question. Voici la situation. NOUS avons 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ù le nginx-source.listcontenu est:

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

et le ruby-ng-experimental-source.listcontenu est:

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

Ces deux sources fournissent un package nginx-full de différentes versions, etc.

$ 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 dépôt répertorié dans nginx-source.list par rapport à celui qui est en haut de la liste maintenant? 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 au 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 Brightbox PPA

$ 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 comment réaliser ce que j'essaie de faire?

milosgajdos
la source

Réponses:

15

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 devrez probablement exécuter apt-get updateaprès avoir créé le fichier.

GM-Script-Writer-62850
la source
/ etc / apt / preferences n'existe pas sur 13.04, bien que /etc/apt/preferences.d/ existe, mais est un répertoire vide.
Pourtant, un autre utilisateur
1
Le fichier n'est pas en stock, vous venez de le créer
GM-Script-Writer-62850
3

Réponse courte: définissez la priorité d'épinglage sur moins de 0 et définissez o = LP-PPA- *, par exemple

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

Pour plus d'informations: http://manpages.ubuntu.com/manpages/raring/en/man5/apt_preferences.5.html et https://help.ubuntu.com/community/PinningHowto .

Clausi
la source