Загрузка зависимостей из внутренней библиотеки пакета packrat

Я создаю пакет R с помощью packrat. Пакет полностью протестирован, и установка из локально сохраненного исходного файла выполняется

install.packages("myPackage.tar.gz", repos = NULL, type = "source")

работает, если все зависимости (указанные в поле Imports:) установлены на локальной машине. Однако я хотел бы установить этот пакет на другой сервер, где не установлены зависимости. Когда я пытаюсь это сделать, я получаю сообщение об ошибке

"ERROR: dependencies ‘survey’, ‘dplyr’ are not available for package 'myPackage'"

Я также попытался установить пакет packrat, который я создал, позвонив

packrat::bundle(project = 'pathtomypackageproject', file = 'myPackage.tar.gz',
                include.lib = TRUE)

но я получаю ту же ошибку.

Я думаю, проблема в том, что при установке myPackage R ищет первый элемент .libPaths(), ничего не находит, и, поскольку указано «repos = NULL», некуда устанавливать пакеты, поэтому ошибка брошенный.

Решение, которого я до сих пор стараюсь избегать, — перенести репозиторий, содержащий все зависимости, на сервер и указать на репозиторий при установке пакета. В идеале мне нужно передать только myPackage.tar.gz.

Мой вопрос заключается в том, есть ли способ указать на внутреннюю библиотеку packrat, где можно найти все зависимости, и импортировать оттуда пространства имен.


person denise    schedule 05.04.2016    source источник
comment
мы можем найти пакет где-нибудь? например, на GitHub или другом?   -  person Vincent Bonhomme    schedule 08.04.2016
comment
Я не знаком с пакратом, но нельзя ли просто добавить dplyr и survey к Imports: в файле DESCRIPTION?   -  person C8H10N4O2    schedule 08.04.2016
comment
Я добавил его, но для импорта требуется предварительная установка соответствующих пакетов.   -  person denise    schedule 10.04.2016
comment
Можете ли вы показать код, который вы используете, чтобы дать нам представление о вашем рабочем процессе?   -  person Thomas    schedule 11.04.2016
comment
Я добавил еще несколько объяснений и несколько строк кода, надеюсь, это поможет понять мою проблему.   -  person denise    schedule 12.04.2016


Ответы (1)


Если вы включили список пакетов для импорта в файл DESCRIPTION, то вам просто нужно сделать это при установке вашего пакета:

  install.packages("myPackage",dependencies=TRUE)
person Sowmya S. Manian    schedule 09.04.2016
comment
Однако это работает только тогда, когда я устанавливаю свой пакет из CRAN или если у меня есть все исходные файлы зависимостей, сохраненные локально. Чего я хочу добиться, так это того, что нужно установить только один пакет. Если у этого пакета есть внутренняя библиотека, содержащая все зависимости, я подумал, что может быть способ указать импорт пространства имен на эту внутреннюю библиотеку. Потому что технически все зависимости можно найти, R просто ищет не в том месте! - person denise; 10.04.2016
comment
То, что я хочу, это в значительной степени то, что упоминает здесь Хэдли: /issues/31#issuecomment-208313921, но эта проблема, похоже, еще не решена. Если у кого-нибудь есть идея, как решить эту проблему вручную, я был бы очень благодарен! - person denise; 11.04.2016