Při spuštění v systému Debian, Ubuntu nebo Linux Mint se může zobrazit chyba s chybějícím veřejným klíčem GPG („NO_PUBKEY“) apt update
/ apt-get update
. K tomu může dojít, pokud přidáte úložiště a zapomenete přidat jeho veřejný klíč, nebo pokud při pokusu o import klíče GPG došlo k dočasné chybě serveru klíčů.
Při spuštění apt update
/ apt-get update
nebo se pokouší aktualizovat zdroje softwaru pomocí nástroje GUI, apt si stěžuje, že ne všechny indexy úložiště lze stáhnout, a zobrazuje chyby, jako jsou tyto:
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://ppa.launchpad.net/linuxuprising/apps/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A
W: Failed to fetch https://ppa.launchpad.net/linuxuprising/apps/ubuntu/dists/bionic/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A
W: Some index files failed to download. They have been ignored, or old ones used instead.
Toto je pouze příklad. Tato chyba se může objevit nejen u úložišť Launchpad PPA, ale u všech úložišť poskytovaných společnostmi Google, Vivaldi nebo Node.js atd.
Chybová zpráva uvádí, že úložiště nebude aktualizováno a budou použity předchozí indexové soubory. To znamená, že z tohoto úložiště nebudete dostávat aktualizace, takže tento problém vyřešíte importem veřejného klíče GPG.
Jak to velmi snadno opravit The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ...
Chyba. Mělo by to fungovat na Debian, Ubuntu, Linux Mint, Pop! _OS, elementární OS a jakákoli další distribuce Linuxu založená na Debianu nebo Ubuntu.
Řešení 1:Rychlá oprava NO_PUBKEY pro jeden repozitář / klíč.
Pokud vám chybí klíč veřejného úložiště GPG, můžete tento příkaz spustit na svém Ubuntu / Linux Mint / Pop! _OS / systém Debian k vyřešení problému:
sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys THE_MISSING_KEY_HERE
Musíte nahradit THE_MISSING_KEY_HERE
s chybějícím GPG klíčem. Klíč je zobrazen v protokolu aktualizací apt / apt-get za NO_PUBKEY. Například ve výše uvedené chybové zprávě chybí klíč GPG k použití v tomto příkazu:EA8CACC073C3DB2A
.
Viz také:Jak opravit chybu „Could't get get lock / var / lib / dpkg / lock – open (11 resource dočasně nedostupných)“
Řešení 2:Dávkový import všech chybějících klíčů GPG.
Pokud vám chybí několik veřejných klíčů OpenPGP, můžete je importovat všechny najednou pomocí tohoto jednoduchého nástroje:
sudo apt update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' | while read key; do if ! [[ ${keys[*]} =~ "$key" ]]; then sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys "$key"; keys+=("$key"); fi; done
Nemusíte měnit žádnou část příkazu, stačí jej spustit tak, jak je. To také funguje na opravu jediného chybějícího klíče GPG, ale je to poněkud nadbytečné. Přesto funguje s libovolným počtem chybějících GPG klíčů.
Příkaz běží sudo apt update
k aktualizaci zdrojů softwaru a zjištění chybějících klíčů GPG a importu jakéhokoli chybějícího klíče hkp://pool.sks-keyservers.net:80
jako jeho server. Tento server je neustále synchronizován s mnoha dalšími servery, takže by měl mít aktualizované klíče. Pokud chcete, můžete použít jiný server.
Příkaz také používá pole k uložení chybějících klíčů GPG, pro které jsme klíč již importovali. V opačném případě by příkaz pro import klíče běžel dvakrát pro každý chybějící klíč.
Také by vás mohlo zajímat:Jak vytvořit (a publikovat) klíč PGP v Linuxu pomocí GUI