分享

APT-GET更新GPG签名错误解决

 Y忍冬草 2016-06-14

最近将Ubuntu更新至14.04.后陆续出现了一些问题,如lo-menubar软件包变成了孤儿包等,昨天遇到了apt-get无法更新的大问题。

问题主要表现是在通过系统更新管理器、新立得(Synaptic)软件包管理器或者运行

1
sudo apt-get update

命令更新软件库时会出现除主要源以外的PPA全部GPG错误签名无效的情况。在终端中返回的信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
下载 2,166 B,耗时 2分 2秒 (17 B/s)
正在读取软件包列表... 完成
W: GPG 错误:http://archive. precise Release: 下列签名无效: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@>
W: GPG 错误:http://ppa. precise Release: 下列签名无效: BADSIG DB141E2302FDF932 Launchpad Application Review Board PPA
W: GPG 错误:http://ppa. precise Release: 下列签名无效: BADSIG B22A95F88110A93A Launchpad PPA for Bumlebee Project
W: GPG 错误:http://ppa. precise Release: 下列签名无效: BADSIG 0C14D55CE7242835 Launchpad PPA for nautilus actions extra Team
W: GPG 错误:http://ppa. precise Release: 下列签名无效: BADSIG A95AA9FC233DD144 Launchpad PPA for Nuvola Player Builders
W: GPG 错误:http://ppa. precise Release: 下列签名无效: BADSIG 6AF0E1940624A220 Launchpad PPA for TualatriX
W: GPG 错误:http://ppa. precise Release: 下列签名无效: BADSIG 8CA7A6E8E4FA953A Launchpad 0 A.D.
W: 校验签名出错。此仓库未被更新,仍然使用以前的索引文件。GPG 错误:http://extras. precise Release: 下列签名无效: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@>
W: 无法下载 http://extras./ubuntu/dists/precise/Release
W: Some index files failed to download. They have been ignored, or old ones used instead.

Google之后大约了解了问题的原因,Debian及其衍生Linux发行版是用APT管理软件包,apt-get使用GPG签名以验证软件源是否可信,当出现这种GPG错误时,可能有以下几种情况:

  1. 人为的操作造成的,如更新系统(之前刚更新到Ubuntu 12.04.1)或添加PPA;
  2. 无缘无故出现问题,如软件源服务器被黑造成了签名被篡改、文件被替换(之前就发生过SourceForge镜像被黑造成phpMyAdmin被植入后门的情况)或与服务器的中间传输被某些人重置(如DNS被污染);
  3. 储存APT数据和GPG签名的目录/var/lib/apt/损坏(这种情况一般会同时伴有其他严重问题)。

Kaijia之前更新Ubuntu到了12.04.1,并且最近还添加过一个PPA,因此个人认为是第一种情况。以下是在论坛上逛出来的解决方案。

删除存在问题的密钥

警告:只有当你非常确信此问题是由于人为操作(第一种情况)且并非服务器或通讯被人篡改(第二种情况)而引起时才建议执行以下操作。

第一种方法是重新加入以上出现问题的apt-key:首先在新立得(Synaptic)软件包管理器设置->软件库->身份验证中删除存在问题的密钥。删除时请核对密钥名称以免删除正常的PPA(如Google、Opera、Skype的密钥)。删除后再次使用apt-get update更新时出现的问题应该由之前的BADSIG变为NO_PUBLIC(表明不存在密钥,密钥已经被删除),此时需要使用

1
sudo apt-key adv --recv-keys --keyserver keyserver. PGP签名

添加新的Key。如提示的信息是“下列签名无效: BADSIG 6AF0E1940624A220 Launchpad PPA for TualatriX”,则使用6AF0E1940624A220替换PGP签名,为

1
sudo apt-key adv --recv-keys --keyserver keyserver. 6AF0E1940624A220

在全部添加完成之后,运行命令:

1
2
sudo apt-get clean
sudo apt-get update

命令执行完成后应该不会再提示错误信息。

如果仍然提示与之前一样的内容,则需要使用终极方法(参考自此页)。此方法重建了/var/lib/apt/lists/下的内容,在终端中运行以下命令:

1
2
3
4
5
6
sudo apt-get clean
cd /var/lib/apt
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get clean
sudo apt-get update

通过此方法一般情况下问题就解决了,但请注意,此方法可能对已有的apt数据造成破坏,建议先尝试第一种方法,如果不成功(概率很大)则再使用此方法。如果出现问题请使用Root删除/var/lib/apt/lists/文件夹并且将/var/lib/apt/lists.old/文件夹重命名为/var/lib/apt/lists/以恢复。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多