【问题标题】:R: apt-get install r-cran-foo vs. install.packages("foo")R: apt-get install r-cran-foo vs. install.packages("foo")
【发布时间】:2011-01-11 07:40:27
【问题描述】:

在 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") - 我应该会遇到麻烦吗?

【问题讨论】:

    标签: r ubuntu debian cran


    【解决方案1】:

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

    • 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 测试。这就是我在家里使用的。

    至于最后一个问题,你是否'应该期待麻烦':不,因为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 邮件列表是解决此类问题的更明智的地方。

    【讨论】:

    • Dirk,我不想让这个问题成为一个独立的问题...为什么某些软件包(例如 RODBC)只能使用 apt-get install 方法安装?
    • 在哪里?如何?什么时候?什么平台?随意给 r-sig-debian 发电子邮件,这就是我们的目的(尽管如此狂热)。
    • 您是否“只是”错过了 odbc 开发包等?嗯,这就是我们开始提供这些的原因。 RODBC 实际上是我打包的第一个...
    • 另请参阅cran.rstudio.com/bin/linux/ubuntu/README.html 以获取用于安装最新 R 和 R 包的存储库。
    【解决方案2】:
    • 我会考虑使用apt-get 最佳实践,因为您将通过标准系统工具获得自动更新。

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

    • 见上文。

    【讨论】:

    • 或查看 Dirk 对整个故事的回答
    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    相关资源
    最近更新 更多