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

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

 Joshua Ulrich30 мая 2012 г., 00:57
Похоже наrepos="file://path/to/DVD" должно сработать.
 Matthew Lundberg30 мая 2012 г., 02:18
Вы должны добавить ответ с этой информацией.

Ответы на вопрос(3)

азом это не сработало из командной строки.

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

если установка выполняется в Windows, то write_PACKAGES () генерирует два файла: PACKAGES и PACKAGES.gz в каталоге / apos; / path / to / packages / & apos; каталог, в котором находятся все zip-файлы. Файл PACKAGES.gz должен быть удален до того, как функция install.packages () сможет правильно прочитать одиночный файл PACKAGES, иначе «не сможет открыть сжатый файл». появляется ошибка

Решение Вопроса

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

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

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

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

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

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

 28 мая 2015 г., 20:21
Я должен был использоватьcontriburl вместоcontrib.url.
 05 мая 2016 г., 11:37
Команда может установить пакет правильно в большинстве случаев, но она не удалась в пакете, который требует загрузки дополнительных данных при установке, например, «stringi». Я загружаю данные вручную, но как дать R знать путь данных?

Ваш ответ на вопрос