quarta-feira, 10 de setembro de 2025

Problemas de chaves (/usr/share/keyrings) no Debian com Sugestão de Repositórios

Problemas de Chaves no Debian com Sugestão de Repositórios

Caso, após o comando sudo apt update, aparecer o aviso (ou algo parecido):

"Todos os pacotes estão atualizados.
Aviso: Ocorreu um erro durante a verificação da assinatura. O repositório não é atualizado e os arquivos de índice anteriores serão usados. Verificação de assinatura OpenPGP falhou: https://security.debian.org/debian-security trixie-security InRelease: Sub-process /usr/bin/sqv returned an error code (1), error message is: Missing key B0CAB9266E8C3929798B3EEEBDE6D2B9216EC7A8, which is needed to verify signature. Missing key 89C87ACEA5DD6B8E6A7068808E9F831205B4BA95, which is needed to verify signature.
Aviso: Falhou ao obter https://security.debian.org/debian-security/dists/trixie-security/InRelease Sub-process /usr/bin/sqv returned an error code (1), error message is: Missing key B0CAB9266E8C3929798B3EEEBDE6D2B9216EC7A8, which is needed to verify signature. Missing key 89C87ACEA5DD6B8E6A7068808E9F831205B4BA95, which is needed to verify signature.
Aviso: Falha no download de alguns arquivos de índice. Eles foram ignorados, ou os antigos usados em seu lugar."

Esse aviso, no caso, refere-se ao repositório oficial security-debian. Adicionar as chaves com apt-key não resolve, pois esse comando está obsoleto desde o Debian 11 e essa ferramenta foi removida no Debian 13.
Isso acontece porque o Debian mudou a estrutura do diretório das chaves (e faz tempo) que antes era em /etc/apt/trusted.gpg.d/ e agora é em /usr/share/keyrings, porém, parece-me que isso não foi implementado corretamente ainda.
Além disso, agora temos dois arquivos de repositórios no Debian: /etc/apt/sources.list (formato antigo) e /etc/apt/sources.list.d/debian.sources (formato novo).
Você deve usar um ou outro, não use os dois ao mesmo tempo.
Aliás, o formato antigo em /etc/apt/sources.list mudou também, isso virou uma confusão.

Para resolver o erro execute:

$ sudo apt install --reinstall debian-archive-keyring

Certifique-se do conteúdo no /etc/apt/sources.list:

$ sudo vim /etc/apt/sources.list <<< usei o vim, use teu editor preferido.

Coloque o conteúdo dentro e/ou acrescente os arquivos das chaves entre colchetes:


deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

# deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware

Salve e saia.

$ sudo apt update

Atingido:1 http://deb.debian.org/debian trixie InRelease
Atingido:2 http://deb.debian.org/debian trixie-updates InRelease
Atingido:3 https://security.debian.org/debian-security trixie-security InRelease
Atingido:4 https://dl.google.com/linux/chrome/deb stable InRelease
Todos os pacotes estão atualizados.


No /etc/apt/sources.list.d/debian.sources (novo formato):

# Arquivo de repositórios para o Debian Trixie (13)
#1
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

#2
Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

#3
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Enable: no
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

#4
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie-proposed-updates
Components: main contrib non-free non-free-firmware
Enable: no
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Salve e saia.

E execute:

$ sudo apt update


O parâmetro "Enable: yes" é opcional, pois é padrão, mas coloque caso depois quiser desabilitar com "Enable: no" (equivalente a comentar) um repositório.

O repositório backports deixe comentado, pois não é recomendado deixá-lo habilitado o tempo todo, depois caso quiser instalar um pacote backport, habilite o repositório no debian.sources e execute:

$ sudo apt install -t bookworm-backports nome-do-pacote
ou
$ sudo apt install -t trixie-backports nome-do-pacote


Obs.: Caso der a mensagem "Erro: O valor 'trixie-backports' é inválido para APT::Default-Release, pois essa versão não está disponível nas fontes" ou "invalid for APT::Default-Release as such a release is not available in the sources" é porque o repositório de backports para o Debian 13 está vazio no momento e é por isso que você não pode instalar nada a partir dele. A mensagem de erro é confusa, mas desaparecerá assim que os pacotes chegarem aos backports.

Para entender mais sobre backports:


Proposed-updates
Todas as mudanças da versão estável (stable e antiga oldstable)) lançadas passam por um período de testes extensivos antes de serem aceitas no repositório. Essas atualizações da versão estável (e da antiga) são chamadas de versão pontual.
A preparação para as versões pontuais é feita através do mecanismo proposed-updates. Pacotes atualizados são enviados para uma fila separada chamada p-u-new (o-p-u-new) antes de serem aceitos no proposed-updates (e no oldstable-proposed-updates).

As atualizações proposed-updates são, analogamente, como habilitar no Windows "Obtenha as atualizações mais recentes assim que elas estiverem disponíveis", ou seja, antes de ir para os repositórios trixie/trixie-updates/trixie-security essas atualizações ficam em proposed-updates e você as receberá mais cedo (com erros e tudo, caso tiverem).

2 comentários: