Предположим, мне нужно установить несколько пакетов на машине (Linux), у которой нет подключения к Интернету. Скажем, что я скачал копию крана и сжег его на 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
, но я просто не могу найти пример установки исходного пакета из локального файла, включая его зависимости.