Para localizar quaisquer chaves de repositório expiradas e seus IDs, use apt-key
o seguinte:
LANG=C apt-key list | grep expired
Você obterá um resultado semelhante ao seguinte:
pub 4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]
O ID da chave é o bit após o /
ie BE1DB1F1
, neste caso.
Para atualizar a chave, execute
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1
Nota: A atualização da chave obviamente não funcionará se o mantenedor do pacote ainda não tiver carregado uma nova chave. Nesse caso, há pouco que você pode fazer além de entrar em contato com o mantenedor, registrar um bug em sua distribuição, etc.
Um forro para atualizar todas as chaves expiradas: (graças a @ryanpcmcquen)
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
Você precisa obter a chave mais recente e adicioná-la, quando o apt irá detectá-la e não reclamar. Isso normalmente não deveria acontecer, mas às vezes acontece. O que você realmente precisa é conhecer o código hexadecimal da chave que você precisa adicionar; depois de ter isso, é praticamente ladeira abaixo a partir daí.
Alguns exemplos:
adicionando chaves para backports : as primeiras linhas são o que você procura, embora você precise da chave que deseja.
adicionando chaves ala Ubuntu
fonte
Eu tive um erro semelhante, mas o problema estava na hora do sistema. O ano era 1961 :)
Corrigi a data / hora do sistema e, depois disso, era possível atualizar sem um profissional
fonte
No Debian Wiki sobre SecureAPT , descobri que devo remover a linha que contém o
non-us
arquivo /etc/apt/sources.list.Na verdade, eu fiz isso e funcionou.
fonte
Também pode acontecer quando a data não está correta.
Verifique a data com
Se estiver configurado incorretamente, faça o seguinte para definir o fuso horário e a sincronização automática da data.
fonte
Uma causa altamente improvável, mas ocasionalmente possível, para esse erro é se você adicionou a mesma chave duas vezes com datas de validade diferentes. Você provavelmente saberia ter feito isso para que esta resposta seja relevante para você.
Isso pode acontecer, como aconteceu comigo, ao hospedar seu próprio repositório com suas próprias chaves. Se você, quando a chave estiver prestes a expirar, simplesmente estender sua vida útil em vez de alterá-la, e se você instalou a chave original usando pré-configuração, mas a chave atualizada usando um pacote deb, a chave antiga estará dentro
/etc/apt/trusted.gpg
, enquanto a nova termina como um arquivo separado em/etc/apt/trusted.gpg.d/
. A chave antiga sombreará a nova, que será completamente ignoradaapt-key
. Remova a chave antiga executandogpg --keyring /etc/trusted.gpg --delete-keys <keyid>
, e sua nova chave será detectada.Essa é uma configuração de canto não padrão, mas espero que minha resposta possa salvar alguma confusão, caso alguém encontre esse problema devido ao mesmo motivo que eu.
fonte
Um oneliner mais simples:
for key in $(sudo apt-key list | awk -v FS='[ /:]+' '/expire[sd]/ {print $3}'); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $key; done
Eu apenas sinto que se você estiver fazendo coisas como usar
cut
mais de uma vez, existe uma ferramenta melhor. (Além disso, criei isso com base em uma pergunta diferente .)fonte
Você não precisa fazer nada. É apenas um aviso, você pode ver isso no
W:
prefixo.fonte