【发布时间】:2012-06-04 04:30:08
【问题描述】:
假设我需要在没有 Internet 连接的 (Linux) 机器上安装多个软件包。假设我下载了一份 cran 并将其刻录到我带到离线位置的 DVD 上:
wget ftp://cran.r-project.org/pub/R/src/contrib/*.tar.gz
我什至可以添加一个 PACKAGES 文件,其中包含所有源包及其依赖项的概述:
library(tools)
write_PACKAGES()
我如何离线使用它来安装源程序包,从而解决依赖关系并从本地文件安装?例如,有人想要安装包 ggplot2,它具有相当深的依赖结构。假设 ggplot2 的源包及其所有依赖项都可以作为源包在当前工作目录中使用。如果我这样做:
install.packages("ggplot2_0.9.1.tar.gz", repos=NULL)
这会导致错误,因为根本没有解决依赖关系。或者:
install.packages(list.files(pattern="*.tar.gz"), repos=NULL)
但是这也忽略了依赖结构,并尝试按字母顺序安装包,这也会失败。
我查看了available.packages 和contrib.url,但找不到从本地文件安装源包的示例,包括它的依赖项。
【问题讨论】:
-
好像
repos="file://path/to/DVD"可以工作。 -
您应该使用此信息添加答案。