从CRAN Ubuntu存储库安装R:无公钥错误

时间:2012-04-21 00:24:04

标签: linux r apt

我在R版本2.13上,并希望更新到更新版本,以便使用一些依赖于R> = 2.14的软件包。

我有我的sources.list文件的行,如上所述here。然后我导航到终端并输入:

sudo apt-get update

并在尝试更新离我最近的CRAN镜像上的R时出现以下错误:

  

阅读包裹清单......完成

     

W:GPG错误:http://lib.stat.cmu.edu oneiric / Release:由于公钥不可用,无法验证以下签名:NO_PUBKEY 51716619E084DAB9

知道如何调试此错误吗?

10 个答案:

答案 0 :(得分:73)

对我有用的最简单的解决方案来自this thread的Emre Sahin:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 

答案 1 :(得分:43)

喜欢@Ben Bolker发表评论(对不起我劫持了您的评论,但尚未发布正确的答案),在debian软件包回购的the description中,有一个部分secure apt表示:

  

安全APT

     

CRAN上的Debian backports档案是用密钥签署的   “约翰内斯兰克(CRAN Debian档案)”与关键   ID 381BA480。您可以使用

获取此内容      

gpg --keyserver subkeys.pgp.net --recv-key 381BA480或   或者,使用另一个密钥服务器,

     

gpg --keyserver pgp.mit.edu --recv-key 381BA480如果没有   工作,可能是由于防火墙阻塞端口11371。   或者,您可以搜索0x381BA480   http://keyserver.noreply.org/http://pgp.mit.edu/并将密钥块复制为纯文本   文件,例如命名为jranke_cran.asc。

     

如果使用gpg接收密钥确实有效,则需要将其导出到   文本文件

     

gpg -a --export 381BA480> jranke_cran.asc在这两种情况下你都需要   通过运行

使apt系统知道密钥      

apt-key以root身份添加jranke_cran.asc。

如果您还没有这样做,这可能会解决您的问题。

答案 2 :(得分:25)

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYID

并将KEYID替换为错误消息中显示的数字。

答案 3 :(得分:12)

感谢Philipp Burckhardt,我解决了这个问题。

Have a look here,或者只是尝试一下:

gpg --keyserver pgpkeys.mit.edu --recv-key 51716619E084DAB9  
gpg -a --export 51716619E084DAB9 | sudo apt-key add -

答案 4 :(得分:5)

I encountered the same issue and the only solution I found, perhaps due to a firewall, was to use the helpful Y PPA Manager. The two steps below outline has worked on Ubuntu 15.04.

1) First install the Y PPA Manager:

   x.id x.timestamp x.count
71    1  1435114605      61
74    1  1435114719      62

2) Then fetch missing keys by running the Y PPA Manager:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Click "Advanced"

Next, click "Try to import missing GPG keys"

Finally, update again to check if it works:

y-ppa-manager

答案 5 :(得分:4)

与上面发布的其他内容非常相似,这个单线程似乎在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

答案 6 :(得分:3)

以下是一个可能更容易理解的分步回答。

  1. 获取密钥(警告消息中的最后8位数字):

    gpg --keyserver pgp.mit.edu --recv-key E084DAB9

  2. 输出应如下所示:

        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)
    
    1. 为密钥创建文本文件:

      gpg -a --export E084DAB9&gt; marutter.asc

    2. 添加密钥(需要超级用户访问权限):

      sudo apt-key add marutter.asc

    3. 更新存储库:

      sudo apt-get update

    4. 现在应该没有关于丢失钥匙的警告。

答案 7 :(得分:1)

这解决了我的问题

$ wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add

答案 8 :(得分:0)

它必须为密钥使用更长的标识符。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

问题似乎是服务器上的密钥ID重复。 请参阅CRAN中的说明以及Michael Rutter在this post上的更多背景信息。

答案 9 :(得分:0)

最简单的解决方法是简单地按照 https://cran.r-project.org/bin/linux/ubuntu/ 中的说明进行操作。以 sudo 身份运行:

# update indices
apt update -qq
# install two helper packages we need
apt install --no-install-recommends software-properties-common dirmngr
# add the signing key (by Michael Rutter) for these repos
# To verify key, run gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc 
# Fingerprint: 298A3A825C0D65DFD57CBB651716619E084DAB9
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
# add the R 4.0 repo from CRAN -- adjust 'focal' to 'groovy' or 'bionic' as needed
add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
相关问题