Я звоню из Perl-CGI, используяНе удается загрузить библиотеку R на сервере с помощью команды Rscript
my $call = qx(Rscript tcga_analysis.R $bg_name $ctr_name $set $user);
, когда я использую Rscript myRscript.R
с UNIX на сервере это работает, но с Perl я не могу похоже, могут загрузить любой пакет. Я получаю следующее сообщение об ошибке (из журнала Apache):
Error in library(gplots) : there is no package called 'gplots'
с использованием .libPaths():
> .libPaths()
[1] "/home/sbattaglia/R/x86_64-redhat-linux-gnu-library/3.1"
[2] "/usr/lib64/R/library"
[3] "/usr/share/R/library"
, которая показывает свою личную библиотеку в домашней папке.
Я попытался с помощью
library(gplots, lib.loc="/home/sbattaglia/R/x86_64-redhat-linux-gnu-library/3.1")
, но я получаю lib.loc error
о том, что нет библиотеки деревьев там. Я даже создал файл .Rprofile
в рабочем каталоге, содержащем путь к библиотеке, но не успел. Я также попытался добавить pos=1
, но без успеха ...
однако, если я открываю R и называть library(gplots)
работает
Мне нужно, чтобы он рабочий вызова Rscript из Perl, потому что это часть трубопровода анализа, который использует веб-интерфейс -> perl-cgi -> R для анализа некоторых данных!
спасибо :)
Является ли скрипт cgi другим пользователем, возможно, apache? Возможно, проблема с разрешением. – flodel
Я являюсь владельцем папки var/www/html, содержащей как R, так и perl cgi-скрипты. – TriRook
Это разрешения библиотек R, которые кажутся проблемой. Попробуйте 'chmod -R a + r/home/sbattaglia/R/x86_64-redhat-linux-gnu-library/3.1', т. Е. Сделать все доступным для всех. – flodel