2010-12-01 4 views
5

Je rencontre des problèmes pour créer un package de test fictif pour R sur windows. à des fins de test, dans le terminal R, I Entrée:build R pacakge pour windows -ERROR: la compilation a échoué pour le paquet xxx

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

alors je lance R CMD check pkgtest sur ce paquet factice et a reçu l'erreur comme

* 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. 

EDIT, le fichier complet du journal:

* 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'` 

C'est tout. J'ai une donnée a dans le dossier de données, donc ce n'est pas vide. Le fichier Rd peut effectivement être compilé en pdf par Rcmd rd2pdf, son titre n'est pas vide. Ai-je manqué quelque chose de très basique pour cette erreur?

J'ai Rtools2.12 installé. J'ai même le paquet inline et Rcpp bien installés et en cours d'exécution des exemples. Pour tester ma configuration d'environnement R, j'ai téléchargé le paquet source Rcpp et j'ai fait un R cmd check sur Rcpp, ça s'est bien passé.

+0

Est-ce que R Core prend en charge la compilation sous Cygwin? Je pensais que R pour Windows requis mingw? –

+0

Je ne vois pas pourquoi quelqu'un a voté cette question à -1. Donc, je l'ai ramené à 0. C'est une question valide et comprend un exemple de code, des détails, etc. – Choens

Répondre

3

Oui, beaucoup si tout ce que vous avez fait étaient les étapes décrites ci-dessus.

Tout d'abord, avez-vous que la sortie de package.skeleton vous demande ?:

> 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'. 

En particulier, la dernière ligne.

Vous ne citez pas le journal complet CHECK, je reçois:

$ 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. 

Alors vous devriez aller vérifier le contenu du fichier .out qu'il mentionne. J'ai ce qui suit dans ce fichier:

$ 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’ 

Ce qui est assez explicite, une fois que vous regardez la source du package.

Vous faut au moins:

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

Et alors vous devriez noter que vous ne devez modifier les fichiers Rd. Il s'agit d'une fonctionnalité de conception que prompt() et package.skeleton() ne créent pas de fichiers Rd valides pour permettre aux auteurs de packages d'écrire la documentation minimale pour leurs packages.

+0

nous avons un fichier journal différent: – learnrpackage

+0

@learnrpackage: cela peut être dû à des différences entre Windows et Linux. J'aurais dû dire que j'étais sur Linux. –

+0

Merci Gavin, Le fichier Rd semble la raison. Le 'list = 'a'' semble facultatif, puisque' package.skeleton' par défaut 'list' à tous les objets dans l'environnement actuel. – learnrpackage

1

Vous devez consulter les erreurs dans le fichier répertorié dans la ligne suivante que vous n'avez pas affichée.

Lorsque je tente de revenir sur vos pas, je reçois aussi une erreur:

/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$ 

Pour package.skeleton() ait un sens, vous devez donner une ou plusieurs fonctions, objets de données, ... que vous avez fait ne pas.

+0

Merci Dirk. Je n'ai pas eu le message de journal de Rd_info mais il semble la raison. – learnrpackage

Questions connexes