R:apt-get install r-cran-foo与install.packages("foo")

kno*_*orv 31 ubuntu debian r cran

mcmcpack在Ubuntu下安装R软件包(比如说这个例子)时,我可以选择以下两种安装方法:

# 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")
Run Code Online (Sandbox Code Playgroud)

问题:

  • 安装R软件包的两种方法中的任何一种都被认为是"最佳实践"吗?
  • 假设我是第一次install.packages("mcmcpack")和以后apt-get install r-cran-mcmcpack- 我应该预料到麻烦吗?
  • 假设我是第一次apt-get install r-cran-mcmcpack和以后install.packages("mcmcpack")- 我应该预料到麻烦吗?

Dir*_*tel 33

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

  • apt-get update 如果当时是好的

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

    • 包维护,无bug和当前

    • 你对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'}
Run Code Online (Sandbox Code Playgroud)

这意味着你的软件包进入,/usr/local/lib/R/site-library而进入软件包apt进入/usr/lib/R/site-library和(在基本软件包的情况下)/usr/lib/R/library.

希望澄清问题.对于像这样的问题,r-sig-debian邮件列表是一个更加知情的地方.


Ben*_*ier 5

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

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

  • 看上面。