问题描述
我在终端中运行了这个命令:
sudo apt-get update
更新以下面的错误报告结束:
W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>
W: GPG error: http://ppa.launchpad.net precise Release: The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release
这是什么意思,为什么会发生?
最佳解决办法
尝试这个:
sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update
次佳解决办法
此消息正在显示,因为apt-key数据库中缺少该存储库的gpg密钥。
要导入密钥,请打开一个终端并输入这些命令
gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
pgp密钥主要分布在几个密钥库中。 Ubuntu相关密钥通常在keyserver.ubuntu.com
中找到。但是,如果失败了,你可以使用替代品。喜欢 –
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192
您必须用特定的键替换字母数字部分。确保钥匙是您信任的钥匙。任何使用此密钥的存储库都可以在不发出警告的情况下安装任何软件包。
如果上述操作成功,您将看到以下输出
gpg: Total number processed: 1
gpg: imported: 1
然后运行这个命令:
gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add -
请注意add
后的-
标志。
然后sudo apt-get update
,在此之后你将没有这样的消息。
第三种解决办法
我发现只是在为sudo rm -rf /var/lib/apt/lists && sudo mkdir /var/lib/apt/lists
工作。
第四种办法
您可以尝试使用我的脚本自动接收您使用的PPA的所有GPG密钥:smartupdate.sh。
它将启动apt-get update
,然后查找所有GPG错误并接收找到的GPG签名的密钥。就你而言,它只会启动
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4
但是当你添加一些未签名的PPA时,手动添加GPG密钥变得无聊。 🙂
第五种办法
以下命令为我解决了这个问题:
sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update
第六种办法
我有类似的错误。但是取代BADSIG
,我得到了KEYEXPIRED
for PostgreSQL repo:
W: A error occurred during the signature verification.
The repository is not updated and the previous index files will be used.
GPG error: http://apt.postgresql.org precise-pgdg Release:
The following signatures were invalid: KEYEXPIRED 1381654177
该解决方案完美地描述了here,但这是我解决它的方法:
$ sudo apt-key list | grep -B1 PostgreSQL
$ sudo apt-key del ACCC4CF8
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
现在$ sudo apt-get update
将完美运作!