“Erro GPG: Release: as seguintes assinaturas eram inválidas: BADSIG”


88

Eu executei este comando no terminal:

sudo apt-get update

A atualização termina com o seguinte relatório de erros:

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release  

O que isso significa e por que está acontecendo?


4
Vi um problema semelhante ao instalar o 12.04 pela primeira vez. Depois disso, mudei as "Fontes de software" do gerenciador de software da Índia para outro servidor. Agora não estou vendo esse problema. Se você estiver usando o servidor da Índia, altere-o e informe-nos.
Abhijeet

Thanx Abhijeet. Eu sou indiano, mas estou aqui no Qatar. Eu mudei de servidor para a Arábia Saudita.
beeju

Respostas:


90

Tente o seguinte:

sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update

4
Não há necessidade de criar o partialsubdiretório. sudo apt-get updatefará isso sozinho.
Byte Commander

9
depois de fazer o acima, ainda recebo este erro: #Reading package lists... Done W: GPG error: http://developer.download.nvidia.com Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80
Mona Jalal

Pode valer a pena responder à pergunta (e ganhar mais votos ;-)).
Witold Kaczurba

erro encontrado na segunda etapa:mv: cannot move '/var/lib/apt/lists' to '/tmp/lists': Directory not empty
Usuário da Internet

Você poderia elaborar o que exatamente isso faz? Obrigado,
Hendrik

64

Esta mensagem está sendo exibida porque a chave gpg desse repositório está ausente no banco de dados do apt-key.

Para importar a chave, abra um terminal e insira estes comandos

gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 

As chaves pgp são distribuídas principalmente em vários keystore. As chaves relacionadas ao Ubuntu geralmente são encontradas em keyserver.ubuntu.com. Mas se isso falhar, você pode usar alternativas. Gostar -

gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192

Você deve substituir a parte alfanumérica pela chave específica. Verifique se a chave é aquela em que você confia . Qualquer repositório com essa chave seria capaz de instalar qualquer pacote sem aviso.

Você verá a seguinte saída se o acima for bem-sucedido

gpg: Total number processed: 1
gpg:               imported: 1

Em seguida, execute este comando:

gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add - 

Observe o -sinal depois add.

Então sudo apt-get update, você não terá essas mensagens depois disso.


1
Oi @ anwar onde / como obtenho a chave em que confio?
Minnie Shi

1
@MinnieShi A chave está presente na própria mensagem de erroThe following signatures were invalid: BADSIG 16126D3A3E5C1192
Kalyan Raghu

1
Observe que o apt-key addcomando deve retornar "OK".
Bobina

Ótimo, deve ser a resposta aceita! Obrigado.
Jacob

13

Descobri que apenas fazendo

sudo rm -rf /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists

trabalhou para mim.


Use sudo rm -rf / var / lib / apt / lists / * && sudo mkdir -p / var / lib / apt / lists para preservar qualquer permissão que / var / lib / apt / lists possa ter
131

1
Não há necessidade de criar o partialsubdiretório. sudo apt-get updatefará isso sozinho.
Byte Commander

9

Você pode tentar meu script para receber automaticamente todas as chaves GPG para PPAs que você usa: smartupdate.sh .

Ele será iniciado apt-get update, encontrará todos os erros de GPG e receberá chaves para assinaturas de GPG encontradas. No seu caso, ele será lançado

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4

mas quando você adiciona alguns PPAs não assinados, fica chato adicionar chaves GPG manualmente. :)


6

Os seguintes comandos resolveram o problema para mim:

sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update

1
Não há necessidade de criar o partialsubdiretório. sudo apt-get updatefará isso sozinho.
Byte Commander

4

Eu recebi um erro semelhante. Mas em vez de BADSIGeu cheguei KEYEXPIREDpara o repo PostgreSQL:

W: A error occurred during the signature verification.
  The repository is not updated and the previous index files will be used.
  GPG error: http://apt.postgresql.org precise-pgdg Release:
  The following signatures were invalid: KEYEXPIRED 1381654177

A solução está perfeitamente descrita aqui, mas foi o que fiz para resolvê-la:

$ sudo apt-key list | grep -B1 PostgreSQL
$ sudo apt-key del ACCC4CF8
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

E agora $ sudo apt-get updatevai funcionar perfeitamente!


1

Esta dica (da actionparsnip ) funcionou para mim:

Experimentar:

sudo fuser -vvv /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824
sudo dpkg --clear-avail
sudo dpkg --configure -a
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824 && sudo apt-get dist-upgrade

Encontrado em:
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/194077


1

Isso pode ocorrer devido a um problema de armazenamento em cache de um proxy HTTP. Se você tiver um desses em algum lugar ao longo da rota como eu, peça ao Apt para contornar temporariamente o cache:

sudo apt-get update -o Acquire::http::No-Cache=True

-2

Você pode usar launchpad-getkeyspara corrigir isso. Abra um terminal e digite:

sudo apt-get install launchpad-getkeys
sudo launchpad-getkeys

Então

sudo apt-get update
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.