无法访问opencpu中用户帐户下的R包

时间:2013-10-17 15:42:06

标签: r opencpu

我正在尝试访问从opencpu在用户帐户下安装的R软件包。我可以看到当我以该用户启动R时安装了包:

> installed.packages() 
           Package      LibPath                                         
RLIM       "RLIM"       "/limdata/ali/R/x86_64-pc-linux-gnu-library/3.0"
...
> system('whoami');
ali

但是,当我尝试从opencpu访问该库时,出现错误,表明找不到包:

$ curl -L http://<my.server>/ocpu/user/ali/library/RLIM
there is no package called 'RLIM'

In call:
find.package(pkgname, lib.loc = lib.loc)
# from same server, to confirm opencpu is running... 
$ curl -L http://<my.server>/ocpu/library 
base
bitops
boot
brew
...

任何帮助将不胜感激!

平台信息:

  • 主持人:Ubuntu 12.04
  • opencpu-server 1.0.4-precise0
  • opencpu-lib:1.0.4-precise0
  • R version 3.0.2(2013-09-25) - “Frisbee Sailing”

1 个答案:

答案 0 :(得分:1)

您的家庭图书馆似乎不在/home/ali/的默认位置。因此,访问您的包需要一些额外的步骤。

首先,默认安全配置文件不允许OpenCPU访问/limdata/。要确认这确实是问题所在,请查看/var/log/kern.log并搜索包含APPARMORDENIED的行。请阅读PDF server manual中标题为自定义安全配置文件的部分。

要将您的家庭库添加到安全配置文件,请修改/etc/apparmor.d/opencpu.d/custom并添加以下行:

/limdata/ r,
/limdata/** mrix,

之后,重启apparmor和opencpu:

 sudo service apparmor restart
 sudo service opencpu restart

这应该照顾安全限制。我希望能做到;老实说,我还没有测试过主目录在/home之外的情况,但我认为如果你的R_LIBS_USER环境变量配置正确,它应该可行。如果不让我知道: - )

相关问题