[问题] 使用 crontab 排程要执行 R 程式

楼主: corel (可罗)   2016-03-27 02:31:47
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉) & linux 新手
[问题叙述]:
想要在 Linux底下用 crontab 排程 执行 R 程式
用 Rstudio 直接执行,就一切正常
但是换到用 crontab 设定排程就会产生错误..
主要是说 bitops 与 XML 套件找不到...!
请问是不是要把我所需要的套件设成 R 里面默认的套件?
除require("套件名称") 与 library("套件名称")之外
有其它的做法吗?
PS. 其实我有写一个小程式来测试 crontab 来执行 R 程式, 执行结果是正常的...
以下为输出的错误讯息:
Loading required package: bitops
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE,
logical.return = TRUE, : there is no package called ‘bitops’
Loading required package: XML
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return =
TRUE, : there is no package called ‘XML’
Loading required package: RCurl
Warning message:In library(package, lib.loc = lib.loc, character.only
= TRUE, logical.return = TRUE, : there is no package called ‘RCurl’
Loading required package: DBI
Loading required package: methods
Loading required package: RMySQL
Error in library(bitops) : there is no package called ‘bitops’
停止执行
[环境叙述]:
请提供 sessionInfo() 的输出结果,
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.4 LTS
locale:
[1] LC_CTYPE=zh_TW.UTF-8 LC_NUMERIC=C LC_TIME=zh_TW.UTF-8
[4] LC_COLLATE=zh_TW.UTF-8 LC_MONETARY=zh_TW.UTF-8 LC_MESSAGES=zh_TW.UTF-8
[7] LC_PAPER=zh_TW.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=zh_TW.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RMySQL_0.10.8 DBI_0.3.1 RCurl_1.95-4.8 XML_3.98-1.4 bitops_1.0-6
loaded via a namespace (and not attached):
[1] tools_3.2.4
感谢各位大大
谢谢
作者: obarisk (OSWALT)   2016-03-27 08:42:00
写个脚本在crontab里印.libPath比一下在rstudio里的.libPath
作者: swedrf0112 (M)   2016-03-27 08:46:00
我猜应该是权限问题 确定ㄧ下你的crontab执行跟安装pacage时的权限是ㄧ样的
作者: Wush978 (拒看低质媒体)   2016-03-28 08:23:00
crontab的环境变量和你平常使用下的环境变量差超多我之前用的quick solution是直接在crontab中ssh自己执行指令,这样可以解决很多问题(但是要开ssh server)其他可能的问题还有:sort的结果会不同.libPaths()会受到环境变量影响,细节在.libPaths的说明我建议你如果不想花太多时间在这件事情上面,就在crontab中ssh自己执行程式,否则除了这点外还可能会有其他bug
作者: obarisk (OSWALT)   2016-03-28 18:49:00
把路径加到path之中,或是都装到system的路径中无脑做法就是用sudo装pkg安全做法是开.libpath的权限如果不会遇到版本问题的话

Links booklink

Contact Us: admin [ a t ] ucptt.com