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

Ubuntu下安装R软件包(在这个例子中是mcmcpack ),我可以select以下两种安装方法:

 # 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") – 我应该期待麻烦吗?

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

  • apt-get update是好的,如果什么时候

    • 软件包存在 – 但是CRAN上的2100+软件包中只有大约150个r-cran-*软件包,

    • 软件包保持不变,无错误和最新

    • 在Ubuntu发行的每两年一次的发行版中,您会感到非常满意

  • install.packages()和更高版本update.packages()很好,如果和

    • 你知道如何安装内置的依赖关系(除了r-base-dev

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

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

至于你是否应该预料到麻烦的最后一个问题:不,因为/etc/R/Renvironment R_LIBS_SITE被设置为

 # 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设置,你可以加载另一个版本的包,然后你期望 – 你的私有的(也许是过时的)一般应该先加载。

  • 往上看。