Не удается загрузить библиотеку R на сервер с помощью команды Rscript

Я звоню из perl-cgi используя

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 для анализа некоторых данных!

Спасибо:)

1 ответ

Я отправлю ответ, который появился в чате с @floded.

в основном библиотеки находились в папке на сервере, которая не была видна Apache. Я заново загрузил нужные мне пакеты в папку, где были указаны файлы.R и.cgi library(gplots, lib.loc="correctPathToLibrary") и это сработало:)

Другие вопросы по тегам