在基于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是/即BE1DB1F1之后的位.
要更新密钥,请运行
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1
注意:如果软件包维护者尚未(尚未)上传新密钥,则更新密钥显然不起作用.在这种情况下,除了联系维护人员,提交针对您的分发等的错误之外,您几乎无能为力.
一个班轮更新所有过期的键:(感谢@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