Atribuir maior prioridade ao PPA

11

Estou tentando descobrir como atribuir maior prioridade a um PPA em relação a outro PPA. Eu tive um monte de respostas sobre este fórum, mas nenhuma delas resolve o meu problema.

Temos duas fontes de PPA em alguns de nossos servidores, e nos colocamos em arquivos separados em /etc/apt/sources.list.d . Alguns desses repositórios fornecem os mesmos pacotes (em termos de nomes), mas versões diferentes e possivelmente binários diferentes. Existe uma maneira de como podemos PRIORIZAR um repo sobre outro?

Eu li o tutorial apt_preferences mas não poderia ser mais obscuro e não encontrei as respostas para a minha pergunta. Aqui está a situação. Temos as seguintes fontes:

$ 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

em que nginx-source.list content é:

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

e ruby-ng-experimental-source.list content é:

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

Ambas as fontes fornecem pacotes nginx-full de versões diferentes, etc. Quando eu listo as prioridades, ruby-ng-experimental-source.list está no topo da saída, portanto o nginx-full é instalado a partir desse repositório:

$ 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

Como eu priorizo o repo listado em nginx-source.list sobre o que está no topo da lista agora? Eu tentei algo assim:

$ 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

Mas isso mudou as prioridades de ambas as fontes para o mesmo número - ou algo assim? Então, isso não mudou as prioridades e o nginx-full ainda está sendo instalado a partir do 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

Alguém tem alguma ideia de como conseguir o que estou tentando fazer?

    
por gyre 10.05.2013 / 19:49

2 respostas

14

Aqui está um exemplo de /etc/apt/preferences

mint@mint ~ $ cat /etc/apt/prefrences
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

Provavelmente, execute apt-get update depois de fazer isso.

    
por GM-Script-Writer-62850 13.05.2013 / 02:43
3

Resposta curta: defina a prioridade de fixação para menos de 0 e defina o = LP-PPA- *, por exemplo,

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

Cite de apt_preferences-manpage:

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

Mais informações: link e link .

    
por Clausi 16.05.2013 / 09:42