Apt-Preferences não aceita nome do pacote

1

Eu tenho dois repositórios com um pacote "libtidy-dev":

$ apt-cache policy libtidy-dev

libtidy-dev:
  Installed: 20091223cvs-1.2ubuntu1.1
  Candidate:   1:5.2.0-1+deb.sury.org~trusty+1
  Фиксатор пакета: 1:5.2.0-1+deb.sury.org~trusty+1
  Version table:
     1:5.2.0-1+deb.sury.org~trusty+1 400
        500 http://ppa.launchpad.net/ondrej/php/ubuntu/ trusty/main amd64 Packages
 *** 20091223cvs-1.2ubuntu1.1 400
        500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
        100 /var/lib/dpkg/status
     20091223cvs-1.2ubuntu1 400
        500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Eu quero definir a prioridade para o pacote "libtidy-dev" do repositório "ppa: ondrey / php" para 400. Então eu criei o /etc/apt/preferences.d/libtidy-dev.pref com este conteúdo:

Package: libtidy-dev
Pin: release o=LP-PPA-ondrej-php
Pin-Priority: 400

Mas isso não funciona. Se eu substituir a primeira linha

Package: *
Pin: release o=LP-PPA-ondrej-php
Pin-Priority: 400

funcionará, mas para todos os pacotes deste repositório. Eu não preciso reduzir a prioridade para todos os pacotes, eu quero fazer isso apenas para "libtidy-dev". Então eu tentei de outra maneira. Eu escrevi para arquivo pref isto:

Package: libtidy-dev
Pin: origin archive.ubuntu.com
Pin-Priority: 990

Package: libtidy-dev
Pin: origin security.ubuntu.com
Pin-Priority: 990

Essa configuração faz a mesma coisa. Se a primeira linha tiver o nome do pacote, isso não funcionará, mas se eu especificar asterisco em vez do nome do pacote, ele funcionará, mas para todos os pacotes desses repositórios. O que estou fazendo errado? Como definir a prioridade para um pacote de um repositório?

    
por abr_stackoverflow 11.01.2017 / 21:38

1 resposta

0

Com base na saída de apt-cache policy libtidy-dev , sua configuração para fixar a prioridade de libtidy-dev se aplicou: 400 está listado ao lado do número da versão.

Por exemplo, pegando um sistema Xenial do Ubuntu 16.04 com a configuração padrão e ilustrando com appstream , já que diferentes versões deste pacote estão disponíveis nos arquivos xenial e xenial-backports (que possuem diferentes prioridades padrão):

$ apt-cache policy appstream
appstream:
  Installed: (none)
  Candidate: 0.9.4-1ubuntu3
  Version table:
     0.10.6-1~ubuntu16.04.2 100
        100 http://de.archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages
     0.9.4-1ubuntu3 500
        500 http://de.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
     0.9.4-1 500
        500 http://de.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

Adicionando o seguinte arquivo:

$ cat /etc/apt/preferences.d/appstream
Package: appstream
Pin: release a=xenial-backports
Pin-Priority: 500

Resultados na saída mudando para:

$ apt-cache policy appstream
appstream:
  Installed: (none)
  Candidate: 0.10.6-1~ubuntu16.04.2
  Version table:
     0.10.6-1~ubuntu16.04.2 500
        100 http://de.archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages
     0.9.4-1ubuntu3 500
        500 http://de.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
     0.9.4-1 500
        500 http://de.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

Você também pode executar apt-cache policy sem especificar um nome de pacote, que listará todos os pacotes fixos no final da saída:

$ apt-cache policy
[...]
Pinned packages:
     appstream -> 0.10.6-1~ubuntu16.04.2 with priority 500

A confusão decorre do fato de que fixar todos os pacotes com um padrão global catch-all altera a prioridade listada ao lado do archive, que é mais fácil de detectar do que a próxima à versão do pacote:

$ cat /etc/apt/preferences.d/appstream
Package: *
Pin: release a=xenial-backports
Pin-Priority: 500
$ apt-cache policy appstream
appstream:
  Installed: (none)
  Candidate: 0.10.6-1~ubuntu16.04.2
  Version table:
     0.10.6-1~ubuntu16.04.2 500
        500 http://de.archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages
     0.9.4-1ubuntu3 500
        500 http://de.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
     0.9.4-1 500
        500 http://de.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
    
por 05.02.2018 / 13:33