2010-01-31 71 views
25

在Ubuntu下安装R软件包(在本例中为mcmcpack)时,我可以选择以下两种安装方法:R:apt-get install r-cran-foo与install.packages(“foo”)

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

回答

28

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

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

    • 包存在 - 但只有约150个左右r-cran-*包出来的2100+包在CRAN池的,因此相当稀疏覆盖

    • 包维护,缺陷及当前

    • 你是双开心就好 - 年度版本被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邮件列表对于这样的问题是一个更明智的地方。

+0

Dirk,我讨厌让它成为一个独立的问题......为什么有些软件包(例如RODBC)只能使用apt-get安装方法进行安装? – 2010-02-01 19:00:22

+0

哪里?怎么样?什么时候?什么平台?随意给r-sig-debian发电子邮件,那是我们所拥有的(尽管fanboy-ism尽管如此)。 – 2010-02-01 19:21:01

+0

你是不是错过了odbc开发包等?那么,为什么我们会开始提供这些。 RODBC实际上是我打包的第一批产品之一... – 2010-02-01 19:21:59

4
  • 我会考虑使用apt-get最好的做法,因为你会得到通过标准的系统工具自动更新。

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

  • 见上。

+0

或者看看Dirk对于整个故事的回答 – 2010-01-31 01:16:35

相关问题