假设我需要在没有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但是找不到从本地文件(包括其依赖项)安装源程序包的示例。
牧羊人nacy
蝴蝶刀刀