"apt-get install" error, no public key 的解决方法
本文可自由转载,但请遵循“署名-非商业用途-保持一致”的创作共用协议。 永久链接:JoeCen's 小猫窝-----------------------------
重装这台debian使用的是问同事借的一张版本比较旧的etch碟,原因是我家里面的烂光驱死活读不出2006年11月份的那个版本的etch。安装过程很顺利,除了到安装系统软件的那一步,等了很久,换了n个source,都是apt出错。无奈之下只好只安装了debian base system。
安装完base system,进入系统打算使用apt来将系统update到最新的版本,运行
apt-get update
apt-get upgrade
之后出现错误:
W: GPG error: http://debian.cn99.com/
testing Release: The following signatures couldn't be verified because
the public key is not available: NO_PUBKEY 010908312D230C5F
W: GPG error: http://debian.cn99.com/
testing/updates Release: The following signatures couldn't be verified
because the public key is not available: NO_PUBKEY 010908312D230C5F
W: 用『apt-get -f install』指令或許能修正這些問題。
再运行一次"apt-get update",没有解决这个问题。一直以为是source.list的问题,不过改了几次之后,发现都是这样。明白了,安装系统的时候肯定也是同一个原因导致不能完成安装系统软件的步骤的。
google了一下,发现出现该错误的原因是因为apt使用的gpg public key过期导致的。如这里所说的,可以使用
apt-key list
来查看当前的public key信息。我发现我的key只是到2007-02-07的,也就是说已经过期了。另外上面的链接所说的key的链接也是到2007-02-07的,而最新的etch的key是到2009-07-01的,可以在这里查看和下载得到。
使用:
wget -O - http://ftp-master.debian.org/archive-key-4.0.asc |apt-key add -
来安装最新的gpg public key 。
安装完成以后即可正常使用apt-get来update etch。
一般来说,如果很久很久没有更新debian,或者像我这样使用了比较旧的安装盘来安装debian的话才会出现这个问题。正常的的情况下,在每一次apt-get update 、upgrade的时候系统已经会帮你更新gpg的public key的了。