"Помилка GPG: реліз. Наступні підписи недійсні: BADSIG"


88

Я виконував цю команду в Терміналі:

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

Що це означає і чому це відбувається?


4
Я побачив подібну проблему, коли я вперше встановив 12.04. Після цього я змінив "Джерела програмного забезпечення" від менеджера програмного забезпечення з Індії на інший сервер. Зараз я цього питання не бачу. Якщо ви використовуєте сервер Індії, змініть його і повідомте нам про це.
Abhijeet

Thanx Abhijeet. Я індієць, але залишаюся тут, у Катарі. Я змінив сервер на Саудівську Аравію. Але такий же результат.
bejuju

Відповіді:


90

Спробуйте це:

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
Не потрібно створювати partialпідкаталог. sudo apt-get updateзробить це сам.
Байт-командир

9
виконавши вище, я все ще отримую цю помилку: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
Мона Джалал

Можливо, варто відповісти на поставлене запитання (і заробити більше грошей ;-)).
Вітольд Качурба

сталася помилка на другому кроці:mv: cannot move '/var/lib/apt/lists' to '/tmp/lists': Directory not empty
Користувач Інтернету

Не могли б ви детальніше пояснити, що саме це робить? Дякую,
Хендрик

64

Це повідомлення відображається, тому що у вашій базі даних apt-ключів відсутній ключ 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вас не буде таких повідомлень після цього.


1
Привіт @ anwar, де / як я можу отримати ключ, якому я довіряю?
Мінні Ши

1
@MinnieShi Ключ присутній у самому повідомленні про помилкуThe following signatures were invalid: BADSIG 16126D3A3E5C1192
Kalyan Raghu

1
Зауважте, що apt-key addкоманда повинна повернути "ОК".
Згорнутий

Чудово, має бути прийнята відповідь! Дякую.
Яків

13

Я виявив, що просто роблю

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

працював на мене.


Використовуйте sudo rm -rf / var / lib / apt / lists / * && sudo mkdir -p / var / lib / apt / списки, щоб зберегти все, що може мати / var / lib / apt / список може мати дозвіл
131

1
Не потрібно створювати partialпідкаталог. sudo apt-get updateзробить це сам.
Байт командир

9

Ви можете спробувати мій сценарій, щоб автоматично отримувати всі ключі GPG для PPA, які ви використовуєте: smartupdate.sh .

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

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

але коли ви додаєте кілька непідписаних PPA, вам стає нудно додавати GPG-ключі вручну. :)


6

Наступні команди вирішили проблему для мене:

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

1
Не потрібно створювати partialпідкаталог. sudo apt-get updateзробить це сам.
Байт командир

4

Я отримав подібну помилку. Але замість цього 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буде працювати ідеально!


1

Ця порада (від actionparsnip ) працювала для мене:

Спробуйте:

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

Знайдено в:
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/194077


1

Це може бути пов’язано з проблемою кешування HTTP-проксі. Якщо у вас є хтось із маршрутів, як я, ви можете попросити Apt попросити його тимчасово обійти кеш:

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

-2

Ви можете launchpad-getkeysце виправити. Відкрийте термінал і введіть:

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

Тоді

sudo apt-get update
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.