Ubuntu 的 R 包 - 完整说明

安装 R

适用于当前 R 4.2 版本的*包*可用于大多数稳定的 Ubuntu 桌面版本,直到其官方生命周期结束日期。但是,只有最新的长期支持 (LTS) 版本得到完全支持。截至 2022 年 5 月 2 日,支持的版本为

  • Jammy Jellyfish (22.04,仅 amd64)
  • Impish Indri (21.10,仅 amd64),
  • Focal Fossa (20.04;LTS 和仅 amd64),
  • Bionic Beaver (18.04;LTS),以及
  • Xenial Xerus (16.04;LTS)。

请注意,为了安装 R 4.1 包,需要一个新的且不同的sources.list条目。有关详细信息,请参见下文。

对于旧版本的 R,请参见相应的自述文件

其他 CRAN 包

对于 R 的其他二进制包(目前超过 4,000 个),请查看不同的 CRAN2deb4ubuntu PPA。对于 R 4.1.*,这是https://launchpad.net/~c2d4u.team/+archive/ubuntu/c2d4u4.0+

“c2d4u”存储库仅适用于 LTS 版本。如果您希望尝试将存储库与非 LTS 版本一起使用,您可以手动编辑“c2d4u_team-ubuntu-c2d4u4_0_-*.list”以使用 focal 而不是预期的版本。这种“c2d4u”存储库的使用不受支持。强烈建议使用 LTS 版本来利用“c2d4u”存储库。

安装

要获取最新的 R 4.1 包,请添加类似以下内容的条目

deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/

deb https://cloud.r-project.org/bin/linux/ubuntu impish-cran40/

deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/

deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/

deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran40/

在您的 /etc/apt/sources.list 文件中。通过使用https://cloud.r-project.org,您将自动被重定向到附近的 CRAN 镜像。有关当前 CRAN 镜像列表,请参见https://cran.r-project.org.cn/mirrors.html

要安装完整的 R 系统,请使用

sudo apt-get update
sudo apt-get install r-base

需要从源代码编译 R 包的用户(例如,包维护者或任何使用 install.packages() 安装包的用户)还应安装 r-base-dev 包

sudo apt-get install r-base-dev

Ubuntu 的 R 包的行为与 Debian 的 R 包类似。您可以在位于https://cran.R-project.org/bin/linux/debian/的 Debian 自述文件中找到更多信息。

安装和编译 R 或其某些包可能需要来自“backports”存储库的 Ubuntu 包。因此,建议使用类似以下内容的条目激活 backports 存储库

deb https://<my.favorite.ubuntu.mirror>/ focal-backports main restricted universe

在您的 /etc/apt/sources.list 文件中。有关 Ubuntu 镜像列表,请参见 https://launchpad.net/ubuntu/+archivemirrors

Mint 和其他 Ubuntu 派生版用户

创建 apt 条目时,您必须使用您的发行版所基于的 Ubuntu 版本名称。例如,不要使用“uma”,而应使用“focal”。

支持的包

Ubuntu 存储库中提供了一些 R 包,其名称以 r-cran- 开头。以下这些包在 CRAN 上保持最新:r-recommended 包捆绑包中的所有包,即

  • r-cran-boot
  • r-cran-class
  • r-cran-cluster
  • r-cran-codetools
  • r-cran-foreign
  • r-cran-kernsmooth
  • r-cran-lattice
  • r-cran-mass
  • r-cran-matrix
  • r-cran-mgcv
  • r-cran-nlme
  • r-cran-nnet
  • r-cran-rpart
  • r-cran-spatial
  • r-cran-survival

以及

  • r-cran-rodbc

其他 r-cran-* 包仅随 Ubuntu 版本更新。需要更新这些 R 包之一(例如 r-cran-foo)的用户应首先确保使用以下命令获取所有必需的构建依赖项:

sudo apt-get build-dep r-cran-foo

由于它们依赖于已安装的 R 版本,因此我们还以实验方式提供以下包的版本,这些版本与 Ubuntu 版本一样最新

  • littler
  • python-rpy2
  • jags

请注意,维护者不一定是这些包的用户,因此通过常用渠道(见下文)提供正面或负面反馈将不胜感激。

最后,为了方便通过 Emacs 与 R 交互的 Ubuntu 用户,我们还提供最新版本的包

  • ess

安全 APT

随着 apt-key 的弃用,添加密钥的推荐方法是

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

要验证密钥

gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc

指纹应为 E298A3A825C0D65DFD57CBB651716619E084DAB9。

使用 apt-key

注意:Ubuntu 密钥服务器上存在第二个密钥的问题。有关详细信息以及如何删除,请参见 http://rubuntu.netlify.com/post/changes-to-cran-ubuntu-webpage-regarding-apt-secure-key/

CRAN 上的 Ubuntu 存档使用“Michael Rutter ”的密钥进行签名,密钥 ID 为 0x51716619e084dab9。要使用一个命令将密钥添加到您的系统,请使用(感谢 Brett Presnell 提供的提示)

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

可以使用另一种方法,通过以下命令检索密钥:

gpg --keyserver keyserver.ubuntu.com --recv-key E298A3A825C0D65DFD57CBB651716619E084DAB9

然后将其提供给 apt-key:

gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -

有些人报告使用这种方法时遇到困难。问题通常与防火墙阻止端口 11371 相关。如果第一个 gpg 命令失败,您可能需要尝试(感谢 Mischan Toosarani 提供的提示)

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

然后将其提供给 apt-key:

gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -

另一种替代方法是在 http://keyserver.ubuntu.com:11371/ 上搜索密钥,并将密钥复制到纯文本文件(例如 key.txt)中。然后,将密钥提供给 apt-key:

sudo apt-key add key.txt

R 包的维护

Ubuntu r-base 和 r-recommended 包中的 R 包安装到 /usr/lib/R/library 目录中。可以使用 apt-get 更新这些包:

sudo apt-get update
sudo apt-get upgrade

与 Ubuntu 一起提供的其他 r-cran-* 包安装到 /usr/lib/R/site-library 目录中。

在 Ubuntu 中安装未提供的 R 包,首先需要使用工具从源代码编译这些包。这些工具可以通过 R 开发包安装,使用以下命令:

sudo apt-get install r-base-dev

这将拉取编译 R 包的基本要求。然后,本地用户/管理员可以从 CRAN 源包安装 R 包,通常从 R 内部使用以下命令:

> install.packages()

函数或使用

R CMD INSTALL

从 shell 中安装。如果您在 /usr/local/lib/R/site-library/ 中拥有适当的写入权限,并且您没有手动设置 R_LIBS_USER,它们将被安装在那里。否则,系统会询问您是否应该在您的主目录中创建一个目录来存放这些包。可以使用以下命令对这些本地编译的包进行例行更新:

> update.packages(.libPaths()[1])

这将更新库路径第一部分中的包。您可以通过以下命令查看此路径的组成部分:

> .libPaths()

如果您想更新通过 Ubuntu 包管理系统安装的 R 包,这些包安装在 /usr/lib/ 下的某个位置,我建议您使用 Ubuntu 的方式,使用来自最新版本的 Ubuntu 的源包,或者使用我的 PPA cran2deb4ubuntu - https://launchpad.net/~c2d4u.team/+archive/ubuntu/c2d4u4.0+

R 包的路径

为了找到包,R 会查看变量 R_LIBS_USER 和 R_LIBS_SITE。在 Debian 和 Ubuntu 上,R_LIBS_USER 在 /etc/R/Renviron 中被设置为

R_LIBS_USER=${R_LIBS_USER-'~/R/$platform-library/3.5'}

其中 $platform 是类似于 ‘x86_64-pc-linux-gnu’ 的东西,具体取决于安装的 R 版本。您可以在 ~/.Renviron 中覆盖此设置。R_LIBS_SITE 在 /etc/R/Renviron 中被设置为

R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}

这意味着,如果您同时安装了两个版本的 R 包,从 R 内部安装的包将优先于通过 Ubuntu 包管理系统安装的包。

报告问题

报告这些包问题或询问与 Ubuntu 相关的 R 问题的最佳位置是 R-SIG-Debian 邮件列表。请查看

https://stat.ethz.ch/mailman/listinfo/r-sig-debian

了解更多信息。

致谢

Debian R 包由 Dirk Eddelbuettel 维护。Ubuntu 包由 Michael Rutter () 使用 Vincent Goulet 开发的脚本为 i386 和 amd64 编译。