2014-09-06 1 views
0

J'appelle de perl-cgi utilisantImpossible de charger la bibliothèque R sur le serveur en utilisant la commande RSCRIPT

my $call = qx(Rscript tcga_analysis.R $bg_name $ctr_name $set $user);

lors de l'utilisation de Rscript myRscript.R unix sur un serveur, mais il fonctionne à partir perl Je ne peux pas semblent pouvoir charger n'importe quel paquet. Je reçois l'erreur suivante (du journal Apache):

Error in library(gplots) : there is no package called 'gplots'

utilisant .libPaths():

> .libPaths() 
[1] "/home/sbattaglia/R/x86_64-redhat-linux-gnu-library/3.1" 
[2] "/usr/lib64/R/library" 
[3] "/usr/share/R/library" 

qui montre ma bibliothèque personnelle dans le dossier de la maison.

J'ai essayé d'utiliser

library(gplots, lib.loc="/home/sbattaglia/R/x86_64-redhat-linux-gnu-library/3.1") 

mais je reçois un lib.loc error disant qu'il n'y a pas d'arbres de bibliothèque là-dedans. J'ai même créé un fichier .Rprofile dans le répertoire de travail contenant le chemin d'accès à la bibliothèque, mais sans succès. J'ai aussi essayé d'ajouter pos=1 mais sans succès ...

cependant, si j'ouvre R et appelle library(gplots) cela fonctionne

je dois avoir faire fonctionner l'appel RSCRIPT de Perl, car il fait partie d'un pipeline d'analyse utilise une interface web -> perl-cgi -> R pour analyser certaines données!

merci :)

+2

Le script cgi est-il exécuté par un utilisateur différent, peut-être apache? Peut-être un problème d'autorisation. – flodel

+0

Je suis le propriétaire du dossier var/www/html contenant les scripts c et perl cgi – TriRook

+0

Ce sont les permissions des bibliothèques R qui semblent poser problème. Essayez 'chmod -R a + r/home/sbattaglia/R/x86_64-redhat-linux-gnu-library/3.1', c'est-à-dire que tout soit lisible par tous. – flodel

Répondre

0

Je vais après la réponse qui est venu dans la conversation avec @floded.

fondamentalement les bibliothèques se trouvaient dans un dossier sur le serveur qui n'était pas visible par Apache. J'ai re-téléchargé les paquets dont j'avais besoin à l'emplacement où les fichiers .R et .cgi étaient, spécifié library(gplots, lib.loc="correctPathToLibrary") et cela a fonctionné :)

Questions connexes