6

我正在尝试从 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-精确0
  • R 版本 3.0.2 (2013-09-25) -- “飞盘航行”
4

1 回答 1

1

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

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

要将您的家庭图书馆添加到安全配置文件,请编辑/etc/apparmor.d/opencpu.d/custom并添加以下行:

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

之后,重启 apparmor 和 opencpu:

 sudo service apparmor restart
 sudo service opencpu restart

那应该注意安全限制。我希望这样做;老实说,我还没有测试过主目录位于外部的场景,/home但我认为如果您的R_LIBS_USER环境变量配置正确,它应该可以工作。如果不让我知道:-)

于 2013-10-17T18:39:50.917 回答