GPG 错误:XXXXX: 由于没有公钥,无法验证下列签名: NO_PUBKEY AED4B06F473041FA
原因主要是使用了未经验证的第三方软件。
解决办法如下:
1。下载相应的公钥:gpg --keyserver subkeys.pgp.net --recv-keys AED4B06F473041FA
其中,AED4B06F473041FA是问题签名,可以只用最后8位473041FA表示;
subkeys.pgp.net是可下载公钥的服务器,其他可用的服务器还有:pgpkeys.mit.edu,wwwkeys.pgp.net,keyserver.ubuntu.com等。
问题:
(1)有时,可能由于网络原因,或者本机DNS配置问题,导致服务器无法连接,可以先:host subkeys.gpg.net,获得公钥服务器的IP地址,然后逐一尝试在命令中用IP地址代替subkeys.pgp.net。
(2)如果一个PPA repository被防火墙阻挡,则需要将公钥服务器的端口号修改为80(默认为11371):gpg --keyserver hkp://subkeys.pgp.net:80 --recv-keys AED4B06F473041FA
(sudo apt-key adv --keyserver hkp://subkeys.pgp.net00:80 --recv-keys AED4B06F473041FA)
或者先执行:export http_proxy="http://subkeys.pgp.net:80"
然后执行:gpg --keyserver-options http-proxy --recv-keys AED4B06F473041FA
(3)如有其他问题,可以用verbose,debug选项查看执行过程:gpg --keyserver subkeys.pgp.net --keyserver-options verbose,debug --recv-keys AED4B06F473041FA
2。加载公钥:gpg --export --armor AED4B06F473041FA | sudo apt-key add -
3。更新列表:sudo apt-get update
注意:gpg命令不能以sudo身份运行(GPG 错误:http:/.gnupg/gpg.conf’所有权不安全)。
其他相关问题:
1。只升级没有缺失公钥的部分软件
sudo apt-get -o Acquire::pdiffs=false update
sudo apt-get --fix-missing dist-upgrade
sudo apt-get update
2。另一个可选的解决方案:
(1)用root用户登录:sudo su
(2)删除问题签名:gpg --delete-key --armor AED4B06F473041FAsudo apt-key del AED4B06F473041FA
(3)重新导入该签名:gpg --keyserver-options http-proxy --keyserver subkeys.pgp.net --recv-keys AED4B06F473041FA
gpg --export --armor AED4B06F473041FA | sudo apt-key add -
(4)退出root用户:exit
(5)清缓存
sudo apt-get clean
cd /var/lib/apt
sudo rm -rf lists.old
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get clean
(6)更新缓存:sudo apt-get update
3。移除PPA repository:sudo ppa-purge ppa-url
需要先安装ppa-purge:sudo apt-get install ppa-purge
也可以使用add-apt-repository -r(在Linux Mint16上add-apt-repository已不支持-r或-remove选项)
ppa-purge和add-apt-repository的区别:
add-apt-repository -r :Will only remove the said PPA. Will not revert any packages, add-apt-repository
just adds and removes lines from /etc/apt/sources.list
and /etc/apt/sources.list.d/
.
ppa-purge:
will not only remove a PPA, it will also downgrade any packages back to their default versions. This is useful when testing beta or newer versions of software.