繁体   English   中英

从Ubuntu CLI远程安装多个R程序包(带或不带)

[英]Remote install of multiple R packages (with, without depends) from Ubuntu CLI

我必须在Ubuntu 16.10系统上执行远程R安装。 作为此过程的一部分,我必须在该主机上安装特定的软件包。 我想安装这些软件包Rcmdrlistggplot2afexlsmeans 由于我是远程执行此操作,因此无法使用

sudo -i R

首先进入R CLI,然后使用install.packages()进行安装。 相反,我必须以某种方式从Ubuntu CLI安装软件包。

我找到了这些链接:

  1. 使用install.packages()进行多个R软件包安装
  2. R CMD INSTALL -l使用语法来安装6.3节中的多个软件包
  3. 在install.packages()中使用repos参数

但是,某些软件包具有依赖性:

  • list包取决于utilssandwich
  • Rcmdr软件包取决于grDevicesutilssplinesRcmdrMisccar
  • ggplot2软件包还具有依赖性。

我只想安装软件包Rcmdrlistggplot2及其所有依赖项。 通常,我会这样做:

install.packages(c('Rcmdr','list','ggplot2'), dependencies=TRUE)

质询

  1. 如何仅在R CMD为一个包指定依赖项选项? 这是安装它们的方法

     R CMD INSTALL -l Rcmdr dependencies=TRUE, list dependencies=TRUE, \\ ggplot2 dependencies=TRUE, afex, lsmeans 

    还是这个不正确?

  2. 另外,如何在R CMD INSTALL -l指定repos参数?

编辑

按照下面的第一评论, sudo不需要above.ie sudo -i R可以被替换为R

关于您的问题:

问题1

这可能不是最佳方法。 而是考虑Rscript -e 'install.packages(...)' ,这是R CMD INSTALL ...仍然要调用的内容。 您可以在此处更好地控制选项。 继续读...

问题2

在工作和家庭中的所有Ubuntu计算机上,我都通过/etc/R/Rprofile.site来执行此/etc/R/Rprofile.site ,例如

## Example of Rprofile.site
local({
    r <- getOption("repos")
    r["CRAN"] <- "https://cloud.r-project.org"
    r["ghrr"] <- "https://ghrr.github.io/drat"
    options(repos = r)
})

我们通常在其中添加第三个和网络本地存储库。 您可能只想在这里使用CRAN-它使用RStudio为R Project和R Consortium管理的“总是与您接近”的CDN。 ghrr drat是我设置的辅助仓库。

问题3

我在R的官方Debian / Ubuntu软件包中添加的某些内容都不需要sudo ,但是您需要成为拥有/usr/local/lib/R/site-library的组的成员。

现在,如果可以的话,还有两个建议:

利特勒

您可以通过sudo apt-get install r-cran-littler r可执行文件。 我在命令行上使用它; 并且您可能想要研究基本的install.r脚本和扩展的install2.r 我倾向于创建从/usr/local/bin到这些目录和其他目录(例如update.r )的软件包目录的软链接。 多年来,我一直在运行许多(Ubuntu和Debian)机器。

Michael Rutter仓库和Docker

实际上,我们有大约3000个CRAN软件包作为Ubuntu的二进制文件 ,因此您只需执行sudo apt-get install ...就可以解决所有依赖项。 一下我的这个脚本 (在Travis上使用它们)或我维护的某些Docker文件(例如this)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM