从CRAN Ubuntu存储库安装R:没有公钥错误
让我开始说我对Linux(Ubuntu)是完全新的,并与R一起工作。目前,我在R 2.13版本,并且想要更新到一个更新的版本,以便使用一些依赖于R> = 2.14的软件包。
我有我的sources.list文件中find这里描述的行。 然后我导航到terminal并input:
sudo apt-get update
并尝试更新最接近我的CRAN镜像上的R时出现以下错误:
Reading package lists... Done W: GPG error: http://lib.stat.cmu.edu oneiric/ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9
由于我在Ubuntu下是R新手,所以我不确定如何debugging这个错误。
任何帮助都感激不尽。
像@Ben Bolker评论(抱歉,我劫持了你的评论,但正确的答案尚未公布),在Debian软件包回购的描述中有一个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上search0x381BA480。; /或http://pgp.mit.edu/并将密钥块复制到一个纯文本文件中,例如jranke_cran.asc。;
如果用gpg接收密钥确实有效,则需要将其导出到文本文件
gpg -a –export 381BA480> jranke_cran.asc在这两种情况下,您都需要通过运行apt系统来知道密钥
apt-key以root用户身份添加jranke_cran.asc。
如果你还没有这样做,这可能会解决你的问题。
对我来说最简单的解决scheme是来自Emre Sahin在这个线程 :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYID
并用错误消息中显示的编号replaceKEYID。
感谢菲利普·伯克哈特 ( Philipp Burckhardt),我把它修好了……看看这里:或者干脆试试这个:
gpg --keyserver pgpkeys.mit.edu --recv-key 51716619E084DAB9 gpg -a --export 51716619E084DAB9 | sudo apt-key add -
我遇到了同样的问题,唯一的解决scheme,我发现,也许是由于防火墙,是使用有用的Y PPApipe理器。 下面的两个步骤已经在Ubuntu 15.04上工作了。
1)首先安装Y PPApipe理器:
sudo add-apt-repository ppa:webupd8team/y-ppa-manager sudo apt-get update sudo apt-get install y-ppa-manager
2)然后通过运行Y PPApipe理器来获取缺less的密钥:
y-ppa-manager
点击“高级”
接下来,点击“尝试导入缺less的GPG密钥”
最后,再次更新以检查它是否工作:
sudo apt-get update
这是一个可能更容易遵循的循序渐进的答案。
-
获取密钥(警告消息中的最后8位数字):
gpg –keyserver pgp.mit.edu –recv-key E084DAB9
输出应该是这样的:
gpg: requesting key E084DAB9 from hkp server pgp.mit.edu gpg: key E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
-
为密钥创build一个文本文件:
gpg -a –export E084DAB9> marutter.asc
-
添encryption钥(需要超级用户访问权限):
sudo apt-key add marutter.asc
-
更新存储库:
sudo apt-get update
现在应该没有关于丢失钥匙的警告。
和其他人一样,这一行似乎在Debian 6上运行良好:
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 381BA480 Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys 381BA480 gpg: requesting key 381BA480 from hkp server pgp.mit.edu gpg: key 381BA480: public key "Johannes Ranke (CRAN Debian archive) <jranke@uni-bremen.de>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1