20 ноября 2017 г.

Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?

При установке пакетов в Ubuntu Linux, например, с помощью команды apt-get иногда возникает ошибка вида «W: GPG error: [..] Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY [..]». Обычно такая ситуация возникает после добавления нового репозитория в /etc/apt/sources.list с последующей попыткой установить пакет из этого репозитория.
Причина происхождения проблемы — отсутствие в вашей системе публичного GnuPG-ключа репозитория, из которого вы пытаетесь инсталлировать пакет (который, в свою очередь, подписан данным ключом). Хеш нужного ключа указывается в тексте ошибки после NO_PUBKEY (т.е. на месте второго «[..]»). Именно его и надо добавить в базу apt вашей системы для успешной установки пакета.
Чтобы это сделать, требуется выполнить две команды:
gpg --keyserver subkeys.pgp.net --recv KEY
gpg --export --armor KEY | sudo apt-key add -
Здесь вместо KEY нужно подставить значение того GPG-ключа, который вы хотите добавить в свою базу. Так, например, если вы получали ошибку NO_PUBKEY F120156012B83718, вам потребуется выполнить следующие команды:
gpg --keyserver subkeys.pgp.net --recv F120156012B83718
gpg --export --armor F120156012B83718 | sudo apt-key add -
После успешного экспорта GPG-ключа в свою базу вы можете повторить попытку установить нужный вам пакет.
sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com номер ошибки