Rscript нет пакета

У меня есть скрипт, который загружает данные, обрабатывает их и сохраняет обработанные данные. Я запускаю его вручную без проблем, но он не работает с Rscript. Он использует пакет data.table, и Rscript не может его найти. Я попробовал решение здесь, но получил следующее сообщение об ошибке:

Error in eval(expr, envir, enclos) :   could not find function ".getNamespace" 
In addition: Warning message: package ‘data.table’ was built under R version 3.1.1 Error : unable to load R code in package ‘chron’ 
Error: package/namespace load failed for ‘data.table’
Execution halted

Скрипт выглядит так:

#!/usr/local/bin/Rscript
args = commandArgs(trailingOnly = TRUE)  # Take arguments from command line
library.path <- '/home/zack/R/x86_64-redhat-linux-gnu-library/3.1'
library('data.table', lib.loc = library.path)

Этот код после сбоя с библиотекой (data.table). Но я могу нормально загрузить data.table, и поэтому остальная часть скрипта работает, если я делаю это вручную. Команда, которую я отправляю в bash:

nohup /usr/local/bin/Rscript --vanilla <path to script> <args> &

Информация о сеансе:

> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-redhat-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base 

какой Rscript:

/usr/local/bin/Rscript

/usr/local/bin/R загружает data.table нормально, когда он вызывается в интерактивном сеансе.


person ZacharyST    schedule 05.02.2016    source источник
comment
Вы пытались обновить R и ваши пакеты R? Текущая версия R — 3.2.3. Обычно я считаю, что простое обновление между несоответствующими пакетами/версией R решает такие проблемы.   -  person black_sheep07    schedule 06.02.2016
comment
процессы запускаются от одного и того же пользователя?   -  person jangorecki    schedule 06.02.2016
comment
Я только что обновился до R 3.2.2 и переустановил data.table. Запускаются ли процессы от одного и того же пользователя? Я так думаю, потому что я оба раза вхожу в систему как я, никогда не работаю как пользователь sudo.   -  person ZacharyST    schedule 06.02.2016
comment
Возможная причина такова: --vanilla не читает R-профиль пользователя и .Renviron файл. Если вы где-то в этих файлах определили путь к своей пользовательской библиотеке, процесс R, запущенный с --vanilla, не найдет библиотеку и установленные в ней пакеты.   -  person Stibu    schedule 06.02.2016
comment
вы можете проверить пользователя из R с помощью Sys.info()[c("user","effective_user")]   -  person jangorecki    schedule 06.02.2016
comment
@jangorecki, пользователь и эффективный_пользователь одинаковы. Стибу, удаление --vanilla из команды bash приводит к той же ошибке.   -  person ZacharyST    schedule 09.02.2016
comment
Отлаживайте @ZacharyST, печатая .libPaths() и rownames(installed.packages(lib.loc = ...))   -  person jangorecki    schedule 01.03.2016