"Ошибка GPG: выпуск: следующие подписи были недопустимыми: BADSIG"

71

Я запустил эту команду в терминале:

sudo apt-get update

Обновление заканчивается следующим сообщением об ошибке:

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 <[email protected]>

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  

Что это значит и почему это происходит?

    
задан beeju 04.05.2012 в 19:47
источник

9 ответов

78

Попробуйте следующее:

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
    
ответ дан SirCharlo 04.05.2012 в 20:18
47

Это сообщение отображается, поскольку в базе данных apt-key отсутствует ключ gpg для этого репозитория.

Чтобы импортировать ключ, откройте терминал и введите следующие команды.

gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 
Клавиши

pgp в основном распределены в нескольких хранилищах ключей. Связанные с Ubuntu ключи обычно находятся в keyserver.ubuntu.com . Но если это не удается, вы можете использовать альтернативы. Как -

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

Вы должны заменить буквенно-цифровую часть на конкретную клавишу. Убедитесь, что ключ - это тот, которому вы доверяете . Любой репозиторий с этим ключом сможет установить любой пакет без предупреждения.

Вы увидите следующий вывод, если вышеуказанное успешно выполнено

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

Затем запустите эту команду:

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

Обратите внимание на знак - после add .

Тогда sudo apt-get update , после этого вы не получите таких сообщений.

    
ответ дан Anwar 14.05.2012 в 16:30
9

Я обнаружил, что просто делать

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

работал для меня.

    
ответ дан intuited 28.08.2012 в 14:50
7

Вы можете попробовать мой сценарий для автоматического получения всех ключей GPG для используемых вами PPA: smartupdate .sh .

Он запустит apt-get update , затем найдет все ошибки GPG и получит ключи для найденных подписей GPG. В вашем случае он просто запустит

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

, но когда вы добавляете несколько неподписанных PPA, становится скучно добавлять ключи GPG вручную. :)     

ответ дан Max Alibaev 02.07.2012 в 21:03
5

Следующие команды решили проблему для меня:

sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update
    
ответ дан Chirag 04.10.2012 в 00:10
3

Я получил аналогичную ошибку. Но вместо BADSIG я получил KEYEXPIRED для репо 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

Решение прекрасно описано здесь , но это то, что я сделал для его решения:

$ 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 -

И теперь $ sudo apt-get update будет работать отлично!

    
ответ дан UlfR 18.06.2014 в 10:53
1

Этот совет (от actionparsnip ) работал для меня:

  

Try:

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

Найдено в:
Ссылка

    
ответ дан ebasconp 21.06.2012 в 00:48
1

Это может быть связано с проблемой кэширования прокси-сервера HTTP. Если у вас есть один из тех, кто находится по пути, как я, вы можете попросить Apt попросить его временно обойти кеш:

sudo apt-get update -o Acquire::http::No-Cache=True
    
ответ дан Dhinesh Sunder Ganapathi 11.03.2018 в 07:41
-1

Вы можете использовать launchpad-getkeys , чтобы исправить это. Откройте терминал и введите:

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

Тогда

sudo apt-get update
    
ответ дан nastys 18.06.2014 в 11:07