假设我需要在没有互联网连接的(Linux)机器上安装许多软件包.假设我下载了一份cr并将其刻录在我带到离线位置的DVD上:
wget ftp://cran.r-project.org/pub/R/src/contrib/*.tar.gz
Run Code Online (Sandbox Code Playgroud)
我甚至可以添加一个PACKAGES文件,其中包含所有源包及其依赖项的概述:
library(tools)
write_PACKAGES()
Run Code Online (Sandbox Code Playgroud)
我如何使用此脱机来安装源包,以便从本地文件中解析和安装依赖项?例如,有人想安装包ggplot2,它具有相当深的依赖结构.假设ggplot2的源包及其所有依赖项在当前工作目录中作为源包提供.如果我做:
install.packages("ggplot2_0.9.1.tar.gz", repos=NULL)
Run Code Online (Sandbox Code Playgroud)
这会导致错误,因为根本没有解决依赖关系.或者:
install.packages(list.files(pattern="*.tar.gz"), repos=NULL)
Run Code Online (Sandbox Code Playgroud)
但是,这也忽略了依赖结构,并尝试按字母顺序安装软件包,这也将失败.
我看着available.packages和contrib.url,但我不能找到一个本地文件安装一个源代码包,包括它的依赖的一个例子.