Por que os pacotes deb assinados dizem que não são autenticados quando copiados para o meu deb deb privado?

4

Versão rápida

Eu configurei um repositório privado do deb e copiei alguns pacotes deb assinados nele. Eu instalei a chave de assinatura localmente. No entanto, quando tento instalar a partir do repositório, recebo este aviso:

WARNING: The following packages cannot be authenticated!

Ao instalar manualmente, eu posso apenas pressionar y mas eu quero instalar esses pacotes automaticamente usando o fantoche, e isso falha.

Então, qual é o problema? Preciso renunciar a pacotes com uma chave que controle? Existe uma maneira melhor de garantir que eu tenha uma versão particular do fantoche instalada?

Mais detalhes

Eu tenho os pacotes do repositório debian do fantoche - link Acabei de copiar o pacote de (para lucid) este diretório

O repositório é então atualizado com um script que executa esses comandos para cada repo:

cd /var/www/html/apt/ubuntu/lucid
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources sources /dev/null | gzip -9c > sources/Sources.gz

Eu instalei a chave de assinatura no cliente.

$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
...
pub   4096R/4BD6EC30 2010-07-10 [expires: 2016-07-08]
uid                  Puppet Labs Release Key (Puppet Labs Release Key) <[email protected]>
...

A razão para fazer isso é que eu quero que todos os clientes fantoches sejam da mesma versão. Assim, todas as máquinas devem obter os pacotes do meu repositório usando o seguinte pin em /etc/apt/preferences.d/puppet :

Package: puppet puppet-common facter
Pin: origin deb.example.org
Pin-Priority: 1001

(No momento, estamos usando o fantoche 2.6.x, então eu preciso de uma prioridade de 1001 para fazer o downgrade de clientes precisos de 2.7.x).

Eu li sobre pacotes de armazenamento , mas isso não me ajuda a alterar as versões dos pacotes.

Todas as sugestões são bem-vindas.

    
por Hamish Downer 20.11.2012 / 12:28

1 resposta

3

*.deb packages não são assinados diretamente no Debian. Existe uma maneira de fazer isso, mas nada no Debian usa isso.

O princípio usado pelos repositórios Debian e Ubuntu APT funciona da seguinte forma:

Todos os pacotes binários *.deb estão listados em um arquivo (por exemplo) binary-i386/Packages.gz com seus checksums. (Todas as versões atuais do Debian e Ubuntu usam todos os três (!) De MD5, SHA-1 e SHA-256 para isso. Versões antigas usavam apenas MD5.) Todos os pacotes% source *.dsc estão listados em source/Sources.gz .

Todos esses arquivos binary-*/Packages.* e source/Sources.* são listados, com suas somas de verificação, em um arquivo Release , que é assinado como Release.gpg ou InRelease , com a chave PGP repositório .

Então, basicamente, se você colocar qualquer pacote em um repositório próprio do APT, precisará assinar esse repositório e usar apt-key add para importar a chave de assinatura do seu próprio repositório para o sistema quando quiser usar qualquer pacote do repositório. esse repositório.

    
por mirabilos 02.03.2014 / 00:23