我在终端中运行了这个命令:
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
更新以以下错误报告结束:
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
Run Code Online (Sandbox Code Playgroud)
这是什么意思,为什么会这样?
Sir*_*rlo 122
尝试这个:
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
Run Code Online (Sandbox Code Playgroud)
Anw*_*war 90
显示此消息是因为您的 apt-key 数据库中缺少该存储库的 gpg 密钥。
要导入密钥,请打开终端并输入这些命令
gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
Run Code Online (Sandbox Code Playgroud)
pgp 密钥大多分布在几个密钥库中。Ubuntu 相关的密钥通常在keyserver.ubuntu.com. 但如果失败了,你可以使用替代品。喜欢 -
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192
Run Code Online (Sandbox Code Playgroud)
您必须使用特定键替换字母数字部分。确保密钥是您信任的密钥。任何具有此密钥的存储库都可以在没有警告的情况下安装任何软件包。
如果上述操作成功,您将看到以下输出
gpg: Total number processed: 1
gpg: imported: 1
Run Code Online (Sandbox Code Playgroud)
然后运行这个命令:
gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
注意-后面的符号add。
然后sudo apt-get update,在此之后您将不会收到此类消息。
int*_*ted 17
我发现只是在做
sudo rm -rf /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists
Run Code Online (Sandbox Code Playgroud)
为我工作。
Max*_*aev 12
您可以尝试使用我的脚本自动接收您使用的 PPA 的所有 GPG 密钥:smartupdate.sh。
它将启动apt-get update,然后查找所有 GPG 错误并接收找到的 GPG 签名的密钥。在你的情况下,它只会启动
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4
Run Code Online (Sandbox Code Playgroud)
但是当您添加一些未签名的 PPA 时,手动添加 GPG 密钥会变得很无聊。:)
我在较旧的 Ubuntu 16.04 机器上遇到了这个问题。我的密钥没有过期,所以我不确定为什么我会收到错误。我尝试了 SirCharlo 的方法,但仍然出现相同的错误。由于这个特殊错误来自“Ubuntu Extras Archive Automatic Signing Key”,我决定刷新我的密钥。这样做之后,一切正常。不确定它是否是两种方法的组合,但如果 SirCharlo 的方法不起作用,请运行以下命令:
apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com
Run Code Online (Sandbox Code Playgroud)
首先清理东西:
sudo apt-get clean
Run Code Online (Sandbox Code Playgroud)
保存备份并保留所有权的可选步骤lists:
sudo cp -a /var/lib/apt/lists /tmp
sudo rm -r /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)
然后重建包列表:
sudo apt update
Run Code Online (Sandbox Code Playgroud)
在一个高度赞扬的答案中提出了以下建议,现已删除:
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
Run Code Online (Sandbox Code Playgroud)
这不是一个好建议,因为 和mv在mkdir这里产生了一个新问题:lists不再属于_apt。这意味着您现在将收到此新apt警告:
W: Download is performed unsandboxed...
Run Code Online (Sandbox Code Playgroud)
您需要保留该lists文件夹的现有所有权和权限。
以下命令为我解决了这个问题:
sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的错误。但是BADSIG我没有得到KEYEXPIREDPostgreSQL 存储库:
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
Run Code Online (Sandbox Code Playgroud)
$ 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 -
Run Code Online (Sandbox Code Playgroud)
现在$ sudo apt-get update将完美运行!
| 归档时间: |
|
| 查看次数: |
222319 次 |
| 最近记录: |