„Błąd GPG: wydanie: następujące podpisy były nieprawidłowe: BADSIG”

88

Uruchomiłem to polecenie w terminalu:

sudo apt-get update

Aktualizacja kończy się następującym raportem błędu:

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  

Co to znaczy i dlaczego tak się dzieje?

beeju
źródło
4
Podobny problem widziałem, kiedy pierwszy raz zainstalowałem 12.04. Następnie zmieniłem „Źródła oprogramowania” z menedżera oprogramowania z Indii na inny serwer. Teraz nie widzę tego problemu. Jeśli korzystasz z serwera w Indiach, zmień go i daj nam znać.
Abhijeet
Thanx Abhijeet. Jestem Hindusem, ale przebywam tutaj w Katarze, zmieniłem serwer na Arabię ​​Saudyjską, ale taki sam wynik.
beeju

Odpowiedzi:

90

Spróbuj tego:

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
źródło
4
Nie ma potrzeby tworzenia partialpodkatalogu. sudo apt-get updatezrobi to sam.
Bajt Commander
9
po wykonaniu powyższego nadal pojawia się ten błąd: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
Być może warto odpowiedzieć na zadane pytanie (i zdobyć więcej głosów pozytywnych ;-)).
Witold Kaczurba,
Wystąpił błąd w drugim kroku:mv: cannot move '/var/lib/apt/lists' to '/tmp/lists': Directory not empty
Użytkownik Internetu
Czy możesz wyjaśnić, co to dokładnie robi? Dziękuję
Hendrik
64

Ten komunikat jest wyświetlany, ponieważ w bazie danych apt-key brakuje klucza gpg dla tego repozytorium.

Aby zaimportować klucz, otwórz terminal i wprowadź te polecenia

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

Klucze pgp są najczęściej dystrybuowane w kilku magazynach kluczy. Klucze związane z Ubuntu można zwykle znaleźć w keyserver.ubuntu.com. Ale jeśli to się nie powiedzie, możesz użyć alternatyw. Lubić -

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

Musisz zastąpić część alfanumeryczną określonym kluczem. Upewnij się, że klucz jest tym, któremu ufasz . Każde repozytorium z tym kluczem byłoby w stanie zainstalować dowolny pakiet bez ostrzeżenia.

Zobaczysz następujące wyniki, jeśli powyższe się powiedzie

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

Następnie uruchom to polecenie:

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

Zauważ -znak po add.

Następnie sudo apt-get updatenie będziesz już otrzymywać takich wiadomości.

Anwar
źródło
1
Cześć @ anwar, gdzie / jak mogę uzyskać klucz, któremu ufam?
Minnie Shi
1
@MinnieShi Klucz jest obecny w samym komunikacie o błędzieThe following signatures were invalid: BADSIG 16126D3A3E5C1192
Kalyan Raghu
1
Zauważ, że apt-key addpolecenie powinno zwrócić „OK”.
COil
Świetnie, powinna być zaakceptowana odpowiedź! Dzięki.
Jacob
13

Znalazłem to po prostu

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

pracował dla mnie.

intuicyjny
źródło
Użyj sudo rm -rf / var / lib / apt / list / * && sudo mkdir -p / var / lib / apt / list, aby zachować dowolne uprawnienia / var / lib / apt / list
131
1
Nie ma potrzeby tworzenia partialpodkatalogu. sudo apt-get updatezrobi to sam.
Bajt Dowódca
9

Możesz wypróbować mój skrypt, aby automatycznie odbierać wszystkie klucze GPG dla użytych PPA: smartupdate.sh .

Uruchomi się apt-get update, a następnie znajdzie wszystkie błędy GPG i odbierze klucze do znalezionych podpisów GPG. W twoim przypadku po prostu się uruchomi

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

ale gdy dodasz kilka niepodpisanych umów PPA, nudne jest ręczne dodawanie kluczy GPG. :)

Max Alibaev
źródło
6

Następujące polecenia rozwiązały problem dla mnie:

sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update
Chirag
źródło
1
Nie ma potrzeby tworzenia partialpodkatalogu. sudo apt-get updatezrobi to sam.
Bajt Dowódca
4

Mam podobny błąd. Ale zamiast BADSIGdostać KEYEXPIREDrepozytorium 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

Rozwiązanie jest doskonale opisane tutaj, ale zrobiłem to, aby je rozwiązać:

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

A teraz $ sudo apt-get updatebędzie działać idealnie!

UlfR
źródło
1

Ta wskazówka (z actionparsnip ) działała dla mnie:

Próbować:

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

Znalezione w:
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/194077

ebasconp
źródło
1

Może to być spowodowane problemem buforowania proxy HTTP. Jeśli masz jeden z tych miejsc na trasie, takich jak ja, możesz poprosić Apt o tymczasowe obejście pamięci podręcznej:

sudo apt-get update -o Acquire::http::No-Cache=True
Dhinesh Sunder Ganapathi
źródło
-2

Możesz launchpad-getkeysto naprawić. Otwórz terminal i wprowadź:

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

Następnie

sudo apt-get update
paskudne
źródło