我刚刚安装了 Ubuntu 12.04 并且添加了一些 repo,但是当我这样做时apt-get update
,我发现缺少 gpg 密钥。
以下命令似乎对我来说不起作用:
apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done
如何解决这个问题?
答案1
我喜欢这个解决方案,从 Ubuntu 密钥服务器重新下载丢失的密钥。
对于 Ubuntu
就我而言
Reading package lists... Done
W: GPG error: http://ppa.launchpad.net precise
Release: The following signatures couldn't be verified because the public key is not available:
NO_PUBKEY 2EA8F35793D8809A
这是添加错误消息中提到的缺少的键的命令。
sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A
因此我拿出丢失的密钥2EA8F35793D8809A
并要求 keyserver.ubuntu.com 将其添加到我在 apt 中的密钥列表中。
对于 Linux Mint
你的密钥服务器略有不同keyserver.linuxmint.com
sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"
尝试其他密钥服务器
keyserver.ubuntu.com
答案2
有一个名为的软件Y PPA manager
可以帮助修复 GPG 密钥错误。
Y PPA 经理
安装 -
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager
安装后启动它,然后转到advance
并选择“导入所有缺失的 GPG 密钥”
答案3
apt-key adv --recv-keys
在防火墙后面,自动下载功能可能无法运行。
在这种情况下,打开Ubuntu 密钥服务器在您的网络浏览器中搜索字符串0x<hexadecimal code of your missing key>
。
打开酒吧部分。将关键内容(从-----BEGIN PGP PUBLIC KEY BLOCK-----
到-----END PGP PUBLIC KEY BLOCK-----
)保存为文件。
然后运行:
sudo apt-key add <file-with-saved-key>
来源:http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html
答案4
对于 Ubuntu 12.04 Precise:永久解决方案
添加新存储库并更新存储库列表后出现此错误消息。这是由于服务器的地址不再有效。因此只需将地址更改为正确的地址即可。
打开文件
~/.gnupg/gpg.conf
使用文本编辑器。在终端:
gedit ~/.gnupg/gpg.conf
然后,在此文件中找到以下粗体行(第 116 行)(应为默认行,如下所示):
[...]
密钥服务器 hkp://keys.gnupg.net
# 密钥服务器邮箱:[电子邮件保护]
# 密钥服务器 ldap://keyserver.pgp.com然后添加以下粗体行,最终得到以下结果:
(在第二行添加#来注释掉旧地址)
[...]
keyserver http://keyserver.ubuntu.com
#
密钥服务器 hkp://keys.gnupg.net
# 密钥服务器 mailto:[电子邮件保护]
# 密钥服务器 ldap://keyserver.pgp.com保存文件并尝试再次更新:
在终端:
sudo apt-get update