我在尝试使用命令更新包列表时遇到一些错误sudo apt-get update
,具体错误信息如下:
W:GPG 错误:http://dl.google.com 稳定版本:以下签名无效:BADSIG A040830F7FAC5991 Google, Inc. Linux 软件包签名密钥 W:签名验证时出错。存储库未更新,将使用以前的索引文件。GPG 错误:http://archive.canonical.com precise Release:以下签名无效:BADSIG 40976EAF437D05B5 Ubuntu Archive 自动签名密钥 W:签名验证时出错。存储库未更新,将使用以前的索引文件。GPG 错误:http://extras.ubuntu.com 精确发布:以下签名无效:BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive 自动签名密钥 W:无法获取 http://archive.canonical.com/ubuntu/dists/precise/Release W:无法获取 http://extras.ubuntu.com/ubuntu/dists/precise/Release W:部分索引文件下载失败。它们已被忽略或使用旧文件代替。
我正在使用 Kubuntu 12.04。
编辑
我执行了建议的命令terdon 在他的回答中,但它仍然不起作用;当尝试更新密钥时,我得到了以下输出:
正在执行:gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.OE3Vb6NDgl --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver keyserver.ubuntu.com A040830F7FAC5991 gpg:从 hkp 服务器 keyserver.ubuntu.com 请求密钥 7FAC5991 gpg:密钥 7FAC5991:“Google, Inc. Linux 软件包签名密钥”未更改 gpg: 处理总数:1 gpg:未改变:1 正在执行:gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.QFmVRIYHrE --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5 gpg: 从 hkp 服务器 keyserver.ubuntu.com 请求密钥 437D05B5 gpg:密钥 437D05B5:“Ubuntu 存档自动签名密钥”未更改 gpg: 处理总数:1 gpg:未改变:1 正在执行:gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.kJGIgNoOEW --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver keyserver.ubuntu.com 16126D3A3E5C1192 gpg: 从 hkp 服务器 keyserver.ubuntu.com 请求密钥 3E5C1192 gpg:密钥 3E5C1192:“Ubuntu Extras Archive 自动签名密钥”未更改 gpg: 处理总数:1 gpg:未改变:1
尝试使用sudo apt-get update
仍然会出现与以前相同的错误。
答案1
您需要为每个存储库导入正确的 GPG 密钥。因此,对于每个缺失的密钥,请运行以下命令:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com KEY
就您而言,您缺少 和 的键,A040830F7FAC5991
您可以通过运行以下命令获取所有三个键:40976EAF437D05B5
16126D3A3E5C1192
for key in A040830F7FAC5991 40976EAF437D05B5 16126D3A3E5C1192; do
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $key; done
运行此命令后,再试sudo apt-get update
一次,它应该可以完美运行。
更新,我以为重新导入密钥可以修复这些问题,但看起来这不起作用。请尝试以下方法(来源):
sudo apt-get clean
sudo mv /var/lib/apt/lists /var/lib/apt/lists.old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update