I am trying to access R packages which were installed under a user's account from opencpu. I can see that the package is installed when I start R as that user:
> installed.packages()
Package LibPath
RLIM "RLIM" "/limdata/ali/R/x86_64-pc-linux-gnu-library/3.0"
...
> system('whoami');
ali
However, when I try to access the library from opencpu, I get errors indicating the package was not found:
$ 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
...
Any help would be greatly appreciated!
Platform info:
- Host: 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"
It seems like your home library is not in the default location of
/home/ali/
. Therefore some additional steps are needed to access your packages.First of all, the default security profile won't allow OpenCPU to access
/limdata/
. To verify that this is indeed the problem, have a look at/var/log/kern.log
and search for lines containingAPPARMOR
andDENIED
. Please read the section titled Customizing the security profile in the PDF server manual.To add your home library to the security profile, edit
/etc/apparmor.d/opencpu.d/custom
and add these lines:Afterwards, restart apparmor and opencpu:
That should take care of the security restrictions. I hope that will do it; honestly I haven't tested a scenario where the home directory is outside of
/home
but I think if yourR_LIBS_USER
environment variable is properly configured, it should work. If not let me know :-)