Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

unable to access R packages under user account in opencpu

Tags:

r

opencpu

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"
like image 408
Ali Guler Avatar asked Oct 17 '13 15:10

Ali Guler


1 Answers

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 containing APPARMOR and DENIED. 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:

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

Afterwards, restart apparmor and opencpu:

 sudo service apparmor restart
 sudo service opencpu restart

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 your R_LIBS_USER environment variable is properly configured, it should work. If not let me know :-)

like image 58
Jeroen Ooms Avatar answered Oct 13 '22 01:10

Jeroen Ooms