我需要在离线系统上编写一些R库的安装脚本。我确实拥有了我需要的源库文件,因为我在一个在线的测试系统上从R中做install.packages()
,我保存了下载的源tar.gz文件,其中包括该库的所有依赖项。
在离线的测试系统上,通常我会在Linux命令Linux命令行上安装一个R库,例如:
R CMD INSTALL ggplot2_0.9.3.1.tar.gz
但这似乎只适用于没有未满足依赖关系的软件包。我希望通过将所有依赖项放在同一个文件夹中,它也会像install.packages()
那样自动安装它所需的依赖库,但不是这样,因为它抱怨:
[root@new-host-15 extra]# R CMD INSTALL ggplot2_0.9.3.1.tar.gz
* installing to library ‘/usr/lib64/R/library’
ERROR: dependencies ‘plyr’, ‘digest’, ‘gtable’, ‘reshape2’, ‘scales’, ‘proto’ are not available for package ‘ggplot2’
* removing ‘/usr/lib64/R/library/ggplot2’
我最初的想法是,我需要使用额外的R CMD INSTALL
命令按顺序安装其他依赖项,但是如果可能的话,我希望避免使用许多额外的命令。有没有一种自动安装ggplot2的方法,并且我自动安装了同一个文件夹中的所有依赖项,而不必单独指定它们?
答案 0 :(得分:1)
在R shell中,您可以install.packages(pkgs, repos = NULL)
强制依赖项在本地查找所需的tar.gz文件。此外,您可以指定contriburl属性以指向依赖包的本地文件路径。例如install.packages("zoo", contriburl="file:///R/packages/")
http://stat.ethz.ch/R-manual/R-patched/library/utils/html/install.packages.html