Suppose I need to install a number of packages on a (Linux) machine that does not have an internet connection. Let's say that I downloaded a copy of cran and burned it on a DVD that I bring to the offline location:
wget ftp://cran.r-project.org/pub/R/src/contrib/*.tar.gz
I can even add a PACKAGES file that contains an overview of all the source packages and their dependencies:
library(tools)
write_PACKAGES()
How could I use this offline to install a source package in such a way that dependencies are resolved and installed from the local files as well? For example, someone wants to install package ggplot2, which has a fairly deep dependency structure. Assume the source package of ggplot2 and all of its dependencies are available as source packages in the current working directory. If I do:
install.packages("ggplot2_0.9.1.tar.gz", repos=NULL)
This results in an error, because the dependencies are not resolved at all. Alternatively:
install.packages(list.files(pattern="*.tar.gz"), repos=NULL)
However this also ignores the dependency structure, and tries to install packages in alphabetical order, which will also fail.
I looked into available.packages
and contrib.url
but I just can't find an example of installing a source package from a local file including it's dependencies.
repos="file://path/to/DVD"
would work. – Neuman