在一个基于debian的系统上更新我的软件包时
sudo apt-get update
我有这个错误信息:
Reading package lists... Done W: GPG error: ftp://ftp.fr.debian.org stable/non-US Release: The following signatures were invalid: KEYEXPIRED 1138684904
我该怎么办才能解决这个问题?
要查找任何到期的存储库密钥及其ID,请按如下所示使用apt-key
:
LANG=C apt-key list | grep expired
您将得到类似于以下的结果:
pub 4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]
密钥ID是在这种情况下/
ie BE1DB1F1
之后的位。
要更新密钥,请运行
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1
注意:如果软件包维护者尚未(尚)上传新密钥,更新密钥显然不起作用。 在这种情况下,除了联系维护人员,对您的分发等提出错误之外,您可以做的事情很less。
一个class轮更新所有过期的钥匙:(感谢@ryanpcmcquen)
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
你需要得到新的密钥并添加它,在这一点上,将检测到它,而不是抱怨。 这通常不会发生,但它有时会发生。 你真正需要的是知道你需要添加的密钥的hex代码; 一旦你有这个,从那里是非常下坡。
一些例子:
为后端添加键 :前几行是你要的,尽pipe你需要有它想要的键。
增加键阿拉Ubuntu
在Debian Wiki上关于SecureAPT ,我发现我应该从/etc/apt/sources.list中删除包含non-us
的行。
我真的这样做,它的工作。
我有类似的错误,但问题是在系统时间。 这一年是1961年:)
我纠正了系统date/时间,之后可以更新没有亲
当date不正确时也可能发生。
检查date
date
如果configuration错误,请按照以下步骤设置时区和date自动同步。
apt-get install ntp ntpdate && service ntp stop dpkg-reconfigure tzdata ntpdate-debian service ntp start
你不必做任何事情。 这只是一个警告,你可以从W:
前缀看到。