33

在 Ubuntu 下安装 R 包(例如mcmcpack在此示例中)时,我可以选择以下两种安装方法:

# Let the distribution's packaging system take care of installation/upgrades
apt-get install r-cran-mcmcpack

# Let R take care of installation/upgrades
install.packages("mcmcpack")

问题:

  • 两种安装 R 包的方法中的任何一种都被认为是“最佳实践”吗?
  • 假设我首先install.packages("mcmcpack")和后来apt-get install r-cran-mcmcpack- 我应该期待麻烦吗?
  • 假设我首先apt-get install r-cran-mcmcpack和后来install.packages("mcmcpack")- 我应该期待麻烦吗?
4

2 回答 2

35

这并不像看起来那么容易。

  • apt-get update如果和何时是好的

    • 包是存在的——但r-cran-*在 CRAN 上的 2100 多个包中只有大约 150 个包,所以覆盖范围相当稀疏

    • 软件包得到维护,无错误且最新

    • 你对 Ubuntu 的双年度发布感到满意

  • install.packages()如果和update.packages()何时

    • 您知道安装内置依赖项(除了r-base-dev)需要什么

    • 您不介意update.packages()手动运行以及apt-get更新。

在我工作的 Ubuntu 机器上,我采用了第二种解决方案。但是如果你有足够的覆盖范围,第一个更好,我们构建了cran2deb,它为 amd64 和 i386 提供了 2050+ 个二进制 deb 包 --- 但仅用于 Debian 测试。这就是我在家里使用的。

至于最后一个问题,你是否“应该期待麻烦”:不,因为R_LIBS_SITE被设置/etc/R/Renvironment

# edd Apr 2003  Allow local install in /usr/local, also add a directory for
#               Debian packaged CRAN packages, and finally the default dir 
# edd Jul 2007  Now use R_LIBS_SITE, not R_LIBS
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:\
/usr/lib/R/site-library:/usr/lib/R/library'}

这意味着您的包进入/usr/local/lib/R/site-library,而那些由apt进入/usr/lib/R/site-library和管理的包(在基本包的情况下)/usr/lib/R/library

希望澄清问题。r-sig-debian 邮件列表是解决此类问题的更明智的地方。

于 2010-01-31T00:40:51.593 回答
5
  • 我会考虑使用apt-get最佳实践,因为您将通过标准系统工具获得自动更新。

  • 安装 2 个版本可能会让您陷入混乱:根据您的 R 设置,您可以加载另一个包版本,然后您期望 - 通常应该首先加载您的私有(可能已过时)版本。

  • 看上面。

于 2010-01-31T00:25:17.783 回答