Проблемы со сборкой и установкой созданного пакета R

Я создал пакет R (еще не в CRAN) и отправил его коллеге (в виде файла .zip).

К сожалению, они не смогли правильно собрать/установить его без того, чтобы R не выдал ошибку.

Полученная ошибка:

Error: Command failed (1)
In addition: Warning message:
The following packages are referenced using Rcpp::depends attributes however    are not listed in the Depends, Imports or LinkingTo fields of the package     DESCRIPTION file: RcppProgress 

Для создания пакета я использовал функцию RcppArmadillo.package.skeleton() в R версии 3.4.3.

Я работаю на себя, но не на своего коллегу.

Мой метод сборки/установки:

build("package name") # creates a .tar.gz file
install("package name")

Будет ли работать простая отправка файла .tar.gz моему коллеге и простой запуск install()?

Вот файл ОПИСАНИЯ:

Package: HACSim
Type: Package
Title: Iterative simulation of species haplotype accumulation curves
Version: 1.0
Date: 2018-04-06
Author: Jarrett Phillips
Maintainer: Jarrett Phillips 
Description: Iterative simulation of species haplotype accumulation curves for assessment of sampling completeness
License: GPL (>= 3)
NeedsCompilation: Yes
Imports: ape (>= 5.0), 
     boot (>= 1.3-20), 
     investr (>= 1.4.0), 
     mgcv (>= 1.8-23), 
     pegas (>= 0.10), 
     Rcpp (>= 0.12.16), 
     scam (>= 1.2-2)
LinkingTo: Rcpp, 
           RcppArmadillo

и ПРОСТРАНСТВО ИМЕН

useDynLib(HACSim, .registration=TRUE)
importFrom(Rcpp, evalCpp)
importFrom(ape, base.freq)
importFrom(ape, read.dna)
importFrom(boot, boot)
importFrom(boot, boot.ci)
importFrom(investr, predFit)
importFrom(MASS, mvrnorm) 
importFrom(mgcv, gam) 
importFrom(mgcv, gam.check)  
importFrom(mgcv, predict.gam)
importFrom(pegas, haplotype)
importFrom(rootSolve, uniroot.all)
importFrom(rootSolve, multiroot)
importFrom(scam, scam)
importFrom(scam, scam.check)
importFrom(scam, predict.scam)
exportPattern("^[[:alpha:]]+")

person compbiostats    schedule 13.05.2018    source источник
comment
Можете ли вы указать свой код или макет, воспроизводящий проблему? Это работает для нас (ТМ).   -  person Dirk Eddelbuettel    schedule 14.05.2018
comment
какие пакеты вы использовали в своем новом пакете? Кажется, это проблема зависимости...   -  person Gwang-Jin Kim    schedule 14.05.2018
comment
@Gwang-JinKim Пакеты: «обезьяна», «загрузка», «инвестор», «mgcv», «pegas» и «scam», а также, конечно, «Rcpp» и «RcppArmadillo». Я установил его на свой iMac, просто выполнив install() (а не сначала build()). Но это могло сработать только при переходе с одного Mac (MacBook Pro) на другой (iMac).   -  person compbiostats    schedule 14.05.2018
comment
Джаррет, при создании файла DESCRIPTION для пакета может возникнуть множество проблем. Многие (большинство?) из них - это те, которые опытные упаковщики делали два или более раз, но их слишком много, чтобы можно было знать наверняка на основе того немногого, что вы предоставили. Если есть на гитхабе (самый простой), дайте ссылку. Если нет (многие из моих пакетов не GH), я предлагаю вам опубликовать по крайней мере файлы DESCRIPTION и NAMESPACE для пакета. В противном случае это предположение и, скорее всего, будет закрыто как невоспроизводимое.   -  person r2evans    schedule 14.05.2018
comment
если эти люди используют другую версию R, чем вы (например, 3.4.1, а вы 3.4.3), то их зависимости также могут быть разными версиями, и, кроме того, эти зависимости могут зависеть от библиотек в системе, которые отличаются от вашей и что все, наверное, может сломать ваш пакет ...   -  person Gwang-Jin Kim    schedule 14.05.2018
comment
@Gwang-JinKim Человек использует ту же версию R   -  person compbiostats    schedule 14.05.2018
comment
@r2evans Мой пакет находится в частном репозитории GitHub. Я выложу файлы DESCRIPTION и NAMESPSCE   -  person compbiostats    schedule 14.05.2018


Ответы (1)


Ошибка

 The following packages are referenced using Rcpp::depends attributes \ 
 however are not listed in the Depends, Imports or LinkingTo fields of\ 
 the package DESCRIPTION file: RcppProgress

что кажется правдоподобным, учитывая то, что вы сейчас опубликовали для DESCRIPTION и NAMESPACE.

Итак, вот что я бы сделал:

  1. Создайте пакет, используя генератор скелета, как у вас есть. Расширяйте по мере необходимости. Затем ...
  2. Запустите R CMD build mypackage затем
  3. Беги R CME check mypackage_1.2.3.tar.gz

Это должно дать вам четкое представление о том, в хорошем ли состоянии ваши источники. После этого вы можете создать двоичный файл, или zip, или ..., который ваш коллега сможет использовать.

Редактировать: И, конечно же, вы должны найти RcppProgress, от которого у вас действительно может быть необъявленная зависимость.

person Dirk Eddelbuettel    schedule 14.05.2018
comment
Спасибо, Дирк. Я запущу их, чтобы убедиться, что все в порядке. - person compbiostats; 14.05.2018
comment
Ошибка указывает на отсутствие зависимости от пакета RcppProgress в файле DESCRIPTION. В моем коде есть индикатор выполнения, но он генерируется с помощью R::utils. Почему такая ошибка может быть выражена, если RcppProgress не используется в моем пакете? - person compbiostats; 15.05.2018
comment
Тогда вам придется отладить пакеты R tools и utils, используемые для этих проверок. Обычно они правы, а мы ошибаемся. - person Dirk Eddelbuettel; 15.05.2018
comment
Спасибо еще раз! При использовании build() из R::devtools (по сути, оболочка для R CMD BUILD) для аргумента 'binary' по умолчанию устанавливается значение FALSE, и создается файл tar.gz. При установке двоичного значения = TRUE создается файл .tgz. Мой коллега работает в системе Linux. Знаете ли вы, что это может быть источником проблем, связанных с невозможностью установки на другую ОС? - person compbiostats; 15.05.2018
comment
Вы используете функции, которыми я не пользуюсь, и у вас возникают проблемы, которых нет у меня. Обычно я рекомендую задокументированные команды R, поэтому на вашем месте я бы перечитал Написание расширений R. - person Dirk Eddelbuettel; 15.05.2018