Автономная установка пакета R и зависимостей


предположим, мне нужно установить несколько пакетов на машине (Linux), которая не имеет подключения к интернету. Предположим, что я загрузил копию cran и сжег ее на DVD, который я привожу в автономное местоположение:

wget ftp://cran.r-project.org/pub/R/src/contrib/*.tar.gz

Я даже могу добавить файл пакетов, содержащий обзор всех исходных пакетов и их зависимостей:

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

3 55

3 ответа:

правильный ответ дал Джошуа Ульрих в комментарии к вопросу:

ключ является префиксом аргумента либо repos или contriburl С file://. Так что в системах Unixy можно было бы сделать:

install.packages("ggplot2", contriburl="file:///path/to/packages/")

предполагается, что все необходимые исходные пакеты, а также индексный файл пакетов доступны в /path/to/packages. Если файл пакетов отсутствует, он должен быть создан сначала с помощью:

library(tools)
write_PACKAGES("/path/to/packages/")

который будет генерировать индекс всех пакеты исходного кода, найденные в этом каталоге. Обратите внимание, что в примере есть 3 Косых за file: префикс. Третья черта указывает путь относительно корня файловой системы.

разницу между repos и contriburl аргумент заключается в том, что repos добавим еще /src/contrib к указанному пути, так как обычно пакеты с исходным кодом находятся на официальном зеркале репозитория CRAN.

со ссылкой на ответ выше, если установка выполняется в Windows, то write_PACKAGES () генерирует два файла: пакеты и пакеты.gz в каталоге' /path/to/packages/', где размещаются все zip-файлы. Пакеты файлов.gz должен быть удален перед установкой.функция packages () правильно умеет читать файл lone PACKAGES иначе появляется ошибка "не удается открыть сжатый файл".

У меня были те же проблемы во время автономной установки. Как-то это не сработало с помощью командной строки.

Я загрузил, извлек все зависимости (сохраняя проверку требуемой минимальной версии) и вставил папки в папку библиотеки. Таким образом, только моя проблема была решена.