Apt pin e auto hospedado apt repo

2

Nós temos nosso próprio repositório apt / deb com um punhado de pacotes onde queremos controlar a versão. Crucialmente isso inclui fantoches, que podem ser sensíveis a versões diferentes.

Eu quero que nossos desktops recebam apenas fantoches do nosso repositório, mas também que as pessoas possam adicionar seus próprios PPAs, ativar backports etc. O problema atual que temos é backports no Ubuntu Lucid. Algumas linhas importantes de /etc/apt/sources.list :

deb http://gb.archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb http://gb.archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://gb.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse

deb http://deb.example.org/apt/ubuntu/lucid/ binary/

E em /etc/apt/preferences.d/puppet :

Package: puppet puppet-common
Pin: release a=binary
Pin-Priority: 800

Package: puppet puppet-common
Pin: release a=lucid-backports
Pin-Priority: -10

Atualmente, a política diz:

$ sudo apt-cache policy puppet
puppet:
  Installed: (none)
  Candidate: (none)
  Package pin: 2.7.1-1ubuntu3.6~lucid1
  Version table:
     2.7.1-1ubuntu3.6~lucid1 -10
        500 http://gb.archive.ubuntu.com/ubuntu/ lucid-backports/main Packages
        100 /var/lib/dpkg/status
     2.6.14-1puppetlabs1 -10
        500 http://deb.example.org/apt/ubuntu/lucid/ binary/ Packages
     0.25.4-2ubuntu6.8 -10
        500 http://gb.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
        500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
     0.25.4-2ubuntu6 -10
        500 http://gb.archive.ubuntu.com/ubuntu/ lucid/main Packages

Se eu usar n= em vez de a= , obtenho Package pin: (not found)

Estou simplesmente confuso neste ponto sobre o que devo usar. Qualquer ajuda apreciada.

Editar

Passei mais tempo lendo a página do manual apt / preferences e encontrou a palavra-chave origin . Então eu tentei agora:

Explanation: get puppet from our server
Explanation: priority over 1000 means downgrade if necessary
Package: puppet puppet-common
Pin: origin "deb.example.org"
Pin-Priority: 1001

Eu deletei a linha de backports. A página man diz que uma prioridade acima de 1000 levará a um downgrade. Mas como é, não há nada instalado. Ainda recebo Package pin: (not found) e Candidate: (not found) enquanto ainda obtenho a tabela de versão completa acima. Eu não vejo porque minha origem não muda a prioridade do deb.example.org.

    
por Hamish Downer 12.09.2012 / 16:41

1 resposta

1

Esta resposta obviamente dependerá de como você empacota e distribui pacotes como o fantoche em seu próprio repositório privado, mas uma opção alternativa a considerar seria fazer versões específicas da empresa com um nome prefixado para evitar conflitos com os repositórios "principais" como backports.

Então, em vez de fantoche, use abc-puppet, onde abc é uma abreviação para sua empresa.

    
por 25.09.2012 / 23:11