У меня есть частный пакет, хранящийся локально (и контролируемый версиями через SVN). Чтобы установить пакет, я прошу пользователя SVN-обновить его/ее каталог пакета, затем setwd()
в каталоге, а затем devtools::install()
.
Этот пакет импортирует многие пакеты CRAN, которые не хранятся локально. Эти импортированные пакеты не устанавливаются автоматически во время установки, что приводит к появлению сообщения об ошибке Dependency package foo not available
. Пользователь должен вручную установить install.packages('foo')
, а затем повторить попытку, только чтобы получить Dependency package bar not available
до тошноты, хотя foo
и bar
входят в число моих Imports:
Подробности:
Мой файл ОПИСАНИЯ выглядит так:
Package: apackage
Type: Package
Title: Package to Do Stuff
Version: 1.11111
Date: 2017-03-02
Author: C8H10N4O2
Maintainer: C8H10N4O2<[email protected]>
Description: Package that does many useful things
License: file LICENSE
Depends:
R (>= 3.3.0)
Imports:
bit64 (>= 0.9.5),
data.table (>= 1.9.6),
extrafont (>= 0.17),
foreach(>= 1.4.3),
ggplot2 (>= 2.0.0),
gbm (>= 2.1),
grid (>= 3.2.3),
gridExtra (>= 2.0.0),
httr (>= 1.1.0),
readxl (>= 0.1.1),
scales (>= 0.4.0),
xlsx (>= 0.5.7)
LazyData: true
RoxygenNote: 5.0.1
Suggests: testthat (>= 0.9.1)
Но при вызове check()
или load_all()
я все еще получаю сообщение об ошибке:
Error in (function (dep_name, dep_ver = NA, dep_compare = NA) :
Dependency package gridExtra not available.
И тогда мой пользователь должен install.packages('gridExtra')
, а затем он / она получает другую ошибку недоступной зависимости.
Что я пробовал:
Согласно пакетам R:
Перечисленные здесь
Imports:
пакеты должны присутствовать, чтобы ваш пакет работал. На самом деле каждый раз, когда ваш пакет устанавливается, эти пакеты, если они еще не установлены, будут установлены на вашем компьютере (devtools::load_all() также проверяет, установлены ли пакеты).
Я также проверил Написание расширений R но больше ничего не нашел по этой теме.
Правильно ли я понимаю, что эти пакеты должны устанавливаться автоматически, и что мне нужно сделать, чтобы обеспечить их автоматическую установку?
Я понимаю, что проблема не полностью воспроизводима, но я не могу дать ссылку на свой репозиторий, поэтому я буду рад предоставить любые дополнительные сведения.
**versions**
R 3.4.0, platform = x86_64-w64-mingw32
devtools 1.13.1
install.packages('foo')
устанавливается из CRAN, но вы, похоже, делаете здесь что-то еще. Как именно вы заставили пользователя настроить свое рабочее пространство R, чтобы это работало? - person MrFlick   schedule 24.05.2017