我跟随https://cloud.r-project.org/bin/linux/ubuntu/README.html安装 R
$ echo "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/" | sudo tee -a /etc/apt/sources.list
$ sudo apt-get update
...
Err:14 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/adrozdoff/emacs/ubuntu bionic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
N: Skipping acquire of configured file 'contrib/binary-i386/Packages' as repository 'https://download.virtualbox.org/virtualbox/debian bionic InRelease' doesn't support architecture 'i386'
W: GPG error: https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9
E: The repository 'https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
...
$ sudo apt-get install r-base
错误消息是否apt-get update
意味着我必须添加存储库的公钥?
如果我放弃它,会有什么后果?
我为啥还能跑apt-get install r-base
?
为什么以下操作会失败?
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
Executing: /tmp/apt-key-gpghome.Z9eYn6e4zV/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
gpg: keyserver receive failed: Server indicated a failure
谢谢。
答案1
提到的存储库适用于 R 的 UBUNTU 软件包包括最新版本 3.6。但是,对于 18.04,Ubuntu 的 Universe 存储库仍有v3.4。即使您不添加 R 的官方存储库,您仍然可以安装 r-base,但显然那将是 v3.4。
错误消息是否
apt-get update
意味着我必须添加存储库的公钥?
如果您想继续使用该存储库,请点选“是”。APT 是一种非常安全的软件包管理工具。它使用该公钥来验证下载的软件包。如需完整文档,请阅读SecureAPT - Debian。
如果我放弃它,会有什么后果?
APT 将继续抱怨,您将无法从 R 的官方存储库下载软件包。
我为啥还能跑
apt-get install r-base
?
因为 r-base 也在 Ubuntu 的 Universe 存储库中。你可以运行apt-cache policy r-base
来检查你将从哪个存储库获得哪个版本。
为什么以下操作会失败?
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9 Executing: /tmp/apt-key-gpghome.Z9eYn6e4zV/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9 gpg: keyserver receive failed: Server indicated a failure
似乎是服务器端的临时问题。我尝试使用相同的命令添加密钥,成功了。
答案2
答案3
签署您的存储库只是确保其安全和验证软件包的另一种方式。官方存储库始终会有一个 gpg 密钥。如果您拥有一个存储库,您可以选择是否要在组织中维护证书和签名方法。
默认情况下,apt 会始终查找 gpg,如果没有 gpg,它将忽略存储库的内容。您可以通过--allow-unauthenticated
向 apt-get 添加选项来跳过 gpg 检查。这需要 sudo 操作。
例子:sudo apt-get --allow-unauthenticated upgrade
,sudo apt-get -y --allow-unauthenticated install foo
。
您也可以使用/etc/apt/apt.conf.d/
目录中您自己的配置文件使此选项永久生效。
在您的 conf 文件中只需添加APT::Get::AllowUnauthenticated "true";
节。
答案4
我可以通过以下提供的说明解决这个问题(2021 年 1 月)这里和在 r 项目中网站。摘要如下:
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'
但是它失败了:“gpg:密钥服务器接收失败:服务器指示失败”
根据 r-project 网站的信息,这可能是由于“防火墙阻止了端口 11371”造成的。在这种情况下,可以采取以下措施:
- 搜索
0xE19F5F87128899B192B1A2C2AD5F960A256A04AF
https://keyserver.ubuntu.com。 - 复制点击以 开头的行中的链接时显示的关键块酒吧(将密钥以 -----BEGIN PGP PUBLIC KEY BLOCK----- 开头)复制到以 *.asc 结尾的纯文本文件中(例如:file_with_key.asc)
- 在存储 *.asc 文件的目录中运行:
$ sudo apt-key add file_with_key.asc
4[编辑]。添加 reppositroy。这里有点棘手。命令的公式是:
$ sudo add-apt-repository 'A_url'
我找到了不同的选项,例如
deb https://cloud.r-project.org/bin/linux/debian buster-cran35/
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/
deb http://cloud.r-project.org/bin/linux/debian buster-cran40/
等。具体取决于您想要的系统和版本。5
. 安装 R
$ sudo apt-get update # Here you should see the cloud.r-project
$ apt-get install r-base r-base-dev
- 检查 R 版本
$ R --version