我使用的是R版本2.13,并且想更新到较新的版本,以便使用某些依赖于R> = 2.14的软件包。
我行我的sources.list文件FOUND描述这里。然后,我导航到终端并输入:
sudo apt-get update
并尝试在距离我最近的CRAN镜像上更新R时收到以下错误:
正在阅读包装清单…完成 W:GPG错误:http ://lib.stat.cmu.edu oneiric /发行:由于公共密钥不可用,因此无法验证以下签名:NO_PUBKEY 51716619E084DAB9
正在阅读包装清单…完成
W:GPG错误:http ://lib.stat.cmu.edu oneiric /发行:由于公共密钥不可用,因此无法验证以下签名:NO_PUBKEY 51716619E084DAB9
任何想法如何调试此错误?
就像@Ben Bolker评论一样(对不起,我劫持了您的评论,但尚未发布正确答案),在debian软件包repo 的描述中有一个部分secure apt说:
secure apt
安全APT CRAN上的Debian反向移植档案文件是用“ Johannes Ranke(CRAN Debian档案文件)”密钥进行签名的,密钥ID为381BA480。你可以用 gpg –keyserver subkeys.pgp.net –recv-key 381BA480或使用其他密钥服务器, gpg –keyserver pgp.mit.edu –recv-key 381BA480如果这不起作用,可能是由于防火墙阻止了端口11371。或者,您可以在http://keyserver.noreply.org上搜索0x381BA480。 /或http://pgp.mit.edu/并将密钥块复制到纯文本文件中,例如jranke_cran.asc。 如果使用gpg接收密钥确实有效,则需要将其导出到文本文件 gpg -a –export 381BA480> jranke_cran.asc在这两种情况下,您都需要通过运行使apt系统知道密钥 apt-key将jranke_cran.asc添加为root。
安全APT
CRAN上的Debian反向移植档案文件是用“ Johannes Ranke(CRAN Debian档案文件)”密钥进行签名的,密钥ID为381BA480。你可以用
gpg –keyserver subkeys.pgp.net –recv-key 381BA480或使用其他密钥服务器,
gpg –keyserver pgp.mit.edu –recv-key 381BA480如果这不起作用,可能是由于防火墙阻止了端口11371。或者,您可以在http://keyserver.noreply.org上搜索0x381BA480。 /或http://pgp.mit.edu/并将密钥块复制到纯文本文件中,例如jranke_cran.asc。
如果使用gpg接收密钥确实有效,则需要将其导出到文本文件
gpg -a –export 381BA480> jranke_cran.asc在这两种情况下,您都需要通过运行使apt系统知道密钥
apt-key将jranke_cran.asc添加为root。
如果您尚未执行此操作,则可能会解决您的问题。