为什么 apt-get update 告诉我运行 apt-get update?

为什么 apt-get update 告诉我运行 apt-get update?

因此,我正在进行以下操作:

# apt-get update
Get:1 http://ftp.us.debian.org etch Release.gpg [1032B]                     
Hit http://ftp.us.debian.org etch Release                                        
(...bunch more of this elided...)
Hit http://ftp.us.debian.org etch/contrib Sources
Fetched 68.8kB in 1s (37.4kB/s)
Reading package lists... Done
W: There is no public key available for the following key IDs:
9AA38DCD55BE302B
W: GPG error: http://ftp.us.debian.org etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
W: You may want to run apt-get update to correct these problems

显然,我无法跑步,apt-get update因为有一个问题apt-get需要我跑步apt-get update去解决,这很不愉快。我该如何纠正这个问题?

答案1

尝试执行此操作并再次运行 apt-get:

apt-key update

apt-key 是一个用于管理安全 apt 的 gpg 密钥环的程序。密钥环保存在文件 /etc/apt/trusted.gpg 中(不要与相关但不太有趣的 /etc/apt/trustdb.gpg 混淆)。apt-key 可用于显示密钥环中的密钥,以及添加或删除密钥。

Debian wiki 上的更多信息:http://wiki.debian.org/SecureApt

如果这不起作用,请尝试:

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B
apt-key add /root/.gnupg/pubring.gpg
apt-get update 

答案2

或者做sudo apt-get install debian-archive-keyring第一次。

之后你可以继续正常

答案3

为了确保您下载的软件包的来源,APT 将需要验证 Release 文件的签名。如果无法验证,它将发出您看到的消息。在这种情况下,您必须安装相应的 GPG 密钥,以便 APT 可以正确验证文件。不幸的是,您不应该盲目下载任何密钥,因为您真正想要的只是允许存储库所有者拥有的受信任密钥。因此,您必须以确保其来源的方式下载它,而简单地下载它并gpg --recv-key不能确保这一点。

安装新密钥是通过 完成的apt-key add <key-file>。大多数非官方存储库都会在其网站上为您提供密钥,并提供如下说明(当然 URL 不同):

wget -O - http://ftp-master.debian.org/keys/archive-key-5.0.asc | sudo apt-key add -

如果是官方 Debian 镜像,您应该会自动安装正确的密钥,它包含在软件包中debian-archive-keyring,并且其配置会自动激活密钥。因此,请确保您已安装它,并确保它是最新的:

apt-get install debian-archive-keyring

如果你不信任你的镜像,你也可以先用前面的方法安装了正确的密钥后再安装,我其实给了你需要的官方密钥的URL。

有关如何处理 Debian 档案密钥的更多信息,您可以查看http://ftp-master.debian.org/keys.html

答案4

我遇到这个问题是因为透明代理给了我一个旧版本的 GPG 密钥,我通过使用 wget 强制代理获取新版本解决了这个问题,例如

wget --no-cache -O /tmp/Z http://security.debian.org/dists/lenny/updates/Release.gpg
wget --no-cache -O /tmp/Z2 http://security.debian.org/dists/lenny/updates/Release

所以我希望你的情况以下命令可以解决这个问题:-

wget --no-cache -O /tmp/Z http://ftp.us.debian.org/dists/etch/Release.gpg
wget --no-cache -O /tmp/Z2 http://ftp.us.debian.org/dists/etch/Release

显然,我们已经远远超过了 Etch,这种情况不再存在,但我在这里记录下来,希望它能对某些人有所帮助。

相关内容