更新源,尤其是PPA源或其他第三方源时经常会碰到缺少公钥的问题:

1
W: GPG error: http://ppa.launchpad.net jaunty Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 06EA41DE4F6C1E86

NO_PUBKEY后面的一串东西就是缺少的公钥的ID。

网 络上这方面的解决方法也不少,但是大多是需要两行命令(甚至有部分帖子由于年代久远,新版本gpg命令的参数改变,已经无法使用……),而且需要输入两次 用户标识符(即公钥ID的后8位),对于不熟悉脚本的新手(像我这样)来说只能痛苦地输两行命令。当缺少的公钥很多时,就非常痛苦了……

其实用一条命令就可以添加公钥了:

1
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv ID

(将ID替换为公钥ID的后8位)

如果有多个公钥需要同时添加的话,尝试一下:

1
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ID1 ID2

其 中,keyserver.ubuntu.com是针对LAUNCHPAD上的PPA源的,基本上所有PPA源的公钥都可以从上面找到,如果找不到的话,就 换成subkeys.pgp.net试试看(这个服务器速度会慢一些),理论上这些第三方源都会把公钥上传到这个服务器上面的。

———-

其实这是我在UBUNTU中文论坛上的帖子,为了更好地宣传这个方法,我也在这里发一份了。

http://forum.ubuntu.org.cn/viewtopic.php?f=52&t=229899