Не удается загрузить библиотеку 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")
и это сработало:)