我正在尝试从opencpu访问安装在用户帐户下的R软件包.当我以该用户身份启动R时,我可以看到该软件包已安装:
> installed.packages()
Package LibPath
RLIM "RLIM" "/limdata/ali/R/x86_64-pc-linux-gnu-library/3.0"
...
> system('whoami');
ali
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试从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
...
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
平台信息:
您的家庭图书馆似乎不在 的默认位置/home/ali/。因此,需要一些额外的步骤来访问您的包。
首先,默认的安全配置文件不允许 OpenCPU 访问/limdata/. 要验证这确实是问题所在,请查看/var/log/kern.log并搜索包含APPARMOR和 的行DENIED。请阅读PDF 服务器手册中标题为“自定义安全配置文件”的部分。
要将您的家庭图书馆添加到安全配置文件,请编辑/etc/apparmor.d/opencpu.d/custom并添加以下行:
/limdata/ r,
/limdata/** mrix,
Run Code Online (Sandbox Code Playgroud)
之后,重新启动apparmor和opencpu:
sudo service apparmor restart
sudo service opencpu restart
Run Code Online (Sandbox Code Playgroud)
这应该考虑到安全限制。我希望能做到这一点;老实说,我还没有测试过主目录位于外部的场景/home,但我认为如果您的R_LIBS_USER环境变量配置正确,它应该可以工作。如果没有请告诉我:-)
| 归档时间: |
|
| 查看次数: |
1528 次 |
| 最近记录: |