当前位置: 首页>>技术教程>>正文


R:apt-get安装r-cran-foo与install.packages(“foo”)

, , ,

问题描述

在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包的两种方法中的任何一种都被认为是”best practice”吗?

  • 假设我首先是install.packages("mcmcpack")以及后来的apt-get install r-cran-mcmcpack – 我应该预料到麻烦吗?

  • 假设我首先是apt-get install r-cran-mcmcpack以及后来的install.packages("mcmcpack") – 我应该预料到麻烦吗?

最佳解决方法

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

  • apt-get update好不好用

    • 包存在 – 但在CRAN上只有大约150个左右的r-cran-*包来自2100+包,所以覆盖范围很小

    • 包维护,无bug和当前

    • 你对Ubuntu的bi-annual版本感到满意

  • install.packages()和后来的update.packages()是好的,如果当

    • 你知道安装built-time依赖项(除了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邮件列表是一个更加知情的地方。

次佳解决方法

  • 我考虑使用apt-get最佳实践,因为您将通过标准系统工具获得自动更新。

  • 安装了2个版本可能会让您陷入困惑的情况:根据您的R设置,您可以加载另一个软件包版本然后您期望 – 您的私有(可能已过时)应该首先加载。

  • 往上看。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7095.html,未经允许,请勿转载。