build R pacakge для windows -ERROR: компиляция не удалась для пакета xxx - PullRequest
5 голосов
/ 01 декабря 2010

У меня проблемы с созданием фиктивного пакета тестирования для R на Windows. в целях тестирования, в R-терминал я ввожу:

a=rnorm(10)
package.skeleton("pkgtest")

тогда я запускаю R CMD check pkgtest на этом фиктивном пакете и получаю сообщение об ошибке типа

* using R version 2.12.0 (2010-10-15)
* using platform: i386-pc-mingw32 (32-bit)
* using session charset: ISO8859-1
* checking for file 'pkgtest/DESCRIPTION' ... OK
* checking extension type ... Package
* this is package 'pkgtest' version '1.0'
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking for executable files ... OK
* checking whether package 'pkgtest' can be installed ... ERROR Installation failed.

РЕДАКТИРОВАТЬ , Полный файл журнала:

* installing *source* package 'pkgtest' ...
** libs
cygwin warning:
  MS-DOS style path detected: C:/R/R-212~1.0/etc/i386/Makeconf
  Preferred POSIX equivalent is: /cygdrive/c/R/R-212~1.0/etc/i386/Makeconf
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
ERROR: compilation failed for package 'pkgtest'
`* removing 'C:/DOCUME~1/xxxx'` 

Это все. У меня есть данные a в папке данных, поэтому они не пусты. Файл Rd может на самом деле скомпилировать в pdf по Rcmd rd2pdf, его заголовок не пустой.

Я что-то упустил из-за этой ошибки? У меня установлен Rtools2.12. У меня даже есть пакеты inline и Rcpp, установленные и работающие примеры в порядке. Чтобы проверить мои настройки среды R, я скачал исходный пакет Rcpp и набрал R cmd check на Rcpp, все прошло нормально.

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Да, много, если все, что вы сделали, это шаги, описанные выше.

Во-первых, вы сделали, как вас выводит вывод из package.skeleton?

> a=rnorm(10)
> package.skeleton("pkgtest")
Creating directories ...
Creating DESCRIPTION ...
Creating Read-and-delete-me ...
Saving functions and data ...
Making help files ...
Done.
Further steps are described in './pkgtest/Read-and-delete-me'.

Inв частности, последняя строка.

Вы не цитируете полный журнал CHECK, я получаю:

$ R CMD check pkgtest
* checking for working pdflatex ... OK
* using log directory '/home/gavin/tmp/pkgtest.Rcheck'
* using R version 2.11.1 Patched (2010-08-17 r52767)
* using session charset: UTF-8
* checking for file 'pkgtest/DESCRIPTION' ... OK
* checking extension type ... Package
* this is package 'pkgtest' version '1.0'
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking for executable files ... OK
* checking whether package 'pkgtest' can be installed ... ERROR
Installation failed.
See '/home/gavin/tmp/pkgtest.Rcheck/00install.out' for details.

Итак, вам нужно проверить содержимое файла .out, о котором он упоминает.У меня есть следующее в этом файле:

$ cat /home/gavin/tmp/pkgtest.Rcheck/00install.out
* install options are ' --no-html'

* installing *source* package ‘pkgtest’ ...
** R
** data
** preparing package for lazy loading
** help
Warning: ./man/pkgtest-package.Rd:34: All text must be in a section
Warning: ./man/pkgtest-package.Rd:35: All text must be in a section
*** installing help indices
Error in Rd_info(db[[i]]) : 
  Rd files must have a non-empty \title.
See chapter 'Writing R documentation' in manual 'Writing R Extensions'.
* removing ‘/home/gavin/tmp/pkgtest.Rcheck/pkgtest’

Что само собой разумеется, как только вы посмотрите на исходный код пакета.

Вам нужно по крайней мере:

> a=rnorm(10)
> package.skeleton(name = "pkgtest", list = "a")

И затем вы должны заметить, что вам нужно редактировать Rd файлы.Это особенность , при которой prompt() и package.skeleton() не создают допустимых Rd-файлов, чтобы авторы пакетов могли написать минимальную документацию для своих пакетов.

1 голос
/ 01 декабря 2010

Вам нужно посмотреть на ошибки в файле, указанном в следующей строке, которую вы не показывали.

Когда я пытаюсь пересмотреть ваши шаги, я также получаю сообщение об ошибке:

/tmp/pkgtest$ r -e 'package.skeleton("pkgtest")'
Creating directories ...
Creating DESCRIPTION ...
Creating Read-and-delete-me ...
Saving functions and data ...
Making help files ...
Done.
Further steps are described in './pkgtest/Read-and-delete-me'.
/tmp/pkgtest$ R CMD INSTALL pkgtest/
* installing to library ‘/usr/local/lib/R/site-library’
* installing *source* package ‘pkgtest’ ...
** data
** help
Warning: /tmp/pkgtest/pkgtest/man/pkgtest-package.Rd:33: \
        All text must be in a section
*** installing help indices
Error in Rd_info(db[[i]]) : 
  Rd files must have a non-empty \title.
See chapter 'Writing R documentation' in manual 'Writing R Extensions'.
* removing ‘/usr/local/lib/R/site-library/pkgtest’
/tmp/pkgtest$ 

Чтобы значение package.skeleton() было значимым, вам нужно предоставить ему одну или несколько функций, объектов данных, ... которые вы не сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...