在 (K)ubuntu 上使用 apt-get 更新软件包列表时出错

在 (K)ubuntu 上使用 apt-get 更新软件包列表时出错

我在尝试使用命令更新包列表时遇到一些错误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您可以通过运行以下命令获取所有三个键:40976EAF437D05B516126D3A3E5C1192

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

相关内容