Как сообщить CRAN об автоматической установке зависимостей пакетов?

Я разрабатываю пакет на R, и когда я проверяю и собираю его на своем локальном компьютере, он работает правильно. Но когда я попробовал это в CRAN, я получил ошибку зависимостей пакета. Мой пакет зависит от двух функций других пакетов.

Если я перечислю другие пакеты в description, используя Depends или imports, будет ли он автоматически установлен с новым пакетом? Или мне нужно явно вызывать функцию install.packages("packagename") под функцией, которую я использовал в других пакетах. если все это неправильно, как лучше всего решить зависимости пакетов в R, чтобы пройти тесты R CMD check и build и отправить в CRAN?

Спасибо.


person Mikael    schedule 05.01.2013    source источник
comment
да, перечислите другие пакеты после Depends: в вашем DESCRIPTION файле   -  person Anthony Damico    schedule 05.01.2013
comment
Простой тест - удалить пакет X из вашей системы и посмотреть, устанавливается ли ваш пакет X из Depends.   -  person csgillespie    schedule 05.01.2013


Ответы (2)


В вашей собственной системе попробуйте

install.packages("foo", dependencies=...)

с аргументом dependencies= документируется как

dependencies: logical indicating to also install uninstalled packages
      which these packages depend on/link to/import/suggest (and so
      on recursively).  Not used if ‘repos = NULL’.  Can also be a
      character vector, a subset of ‘c("Depends", "Imports",
      "LinkingTo", "Suggests", "Enhances")’.

      Only supported if ‘lib’ is of length one (or missing), so it
      is unambiguous where to install the dependent packages.  If
      this is not the case it is ignored, with a warning.

      The default, ‘NA’, means ‘c("Depends", "Imports",
      "LinkingTo")’.

      ‘TRUE’ means (as from R 2.15.0) to use ‘c("Depends",
      "Imports", "LinkingTo", "Suggests")’ for ‘pkgs’ and
      ‘c("Depends", "Imports", "LinkingTo")’ for added
      dependencies: this installs all the packages needed to run
      ‘pkgs’, their examples, tests and vignettes (if the package
      author specified them correctly).

так что вам, вероятно, понадобится значение TRUE.

В своем пакете укажите, что необходимо в Depends:, см. Написание R Extensions, в котором это довольно ясно.

person Dirk Eddelbuettel    schedule 05.01.2013
comment
@ Дирк, спасибо. Но теперь я понял, где возникла проблема. Когда я запускаю R CMD check на R-forge, возникает ошибка зависимости пакета от платформы linux-x86-64. но не было ошибок для windows и mac ОС. сообщение об ошибке выглядит так: using platform: x86_64-unknown-linux-gnu (64-bit) * checking package dependencies ... ERROR Packages required but not available: ‘isa2’ ‘fabia’ - person Mikael; 05.01.2013
comment
... а что, если я удалю пакет? Я хотел бы удалить все его зависимости, если они не требуются для некоторых других уже установленных пакетов? - person 7kemZmani; 01.09.2016
comment
@andi: часто не все так просто. Установка зависимостей может завершиться неудачно, если они требуют компиляции на вашей платформе (или если версия, которую CRAN настаивает на загрузке, является исходной, даже если двоичные дистрибутивы могут быть доступны в другом месте). Например, xgboost когда-то был печально известен этим. - person smci; 15.02.2018

Другая возможность - установить флажок Установить зависимости в установщике пакета R в правом нижнем углу:

enter image description here

person sivi    schedule 26.11.2016