如果我用sudo启动R,R包rJava只会加载

时间:2014-08-10 20:18:19

标签: r ubuntu rjava

我在Ubuntu 14.04.1上运行R 3.0.2。我已经安装了rJava软件包,但如果我用sudo启动它,我只能在R / RStudio中使用它。如果我单击应用程序启动器,或者只是在命令行中输入R,则在加载rJava库时会出现以下错误:

> library(rJava)  
Error : .onLoad failed in loadNamespace() for 'rJava', details:
    call: dyn.load(file, DLLpath = DLLpath, ...)
    error: unable to load shared object '/usr/lib/R/site-library/rJava/libs/rJava.so':
    libjvm.so: cannot open shared object file: No such file or director  
Error: package or namespace load failed for ‘rJava’

但是,如果我输入' sudo rstudio'或者' sudo R'在终端中,rJava加载没有问题。有人知道我做错了吗?

可能相关的问题:我通过输入

安装了rJava
sudo apt-get install r-cran-rjava

在命令提示符下;安装正常的方式:

apt-get install r-cran-rjava

对我不起作用,也没有在R中安装(没有使用sudo启动它)。当我尝试以这种方式安装时,遇到了与this question中解决的问题相同的问题。

4 个答案:

答案 0 :(得分:4)

除root之外的任何用户都可能无法读取文件/usr/lib/R/site-library/rJava/libs/rJava.so。您可以通过以下方式检查:

ls -l /usr/lib/R/site-library/rJava/libs/rJava.so

如果输出为rw-------rw-rw----,那么简单的用户就无法读取它。您可以使用chmod命令更正此问题:

chmod -R a+rX /usr/lib/R/site-library/rJava/

答案 1 :(得分:2)

我尝试了此处列出的解决方案无济于事。在Ubuntu 14.04上运行的是在/ usr / lib中创建到libjvm.so的软链接。

ln -s /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so /usr/lib 

答案 2 :(得分:1)

在启动R:

之前,您需要取消设置JAVA_HOME环境变量
 unset JAVA_HOME

答案 3 :(得分:1)

从Rscript运行时看到这个问题。 Sudo工作,Rscript用户没有。我首先按照damienfrancois的建议做了chmod -R a + rX,但这没有用。然后我尝试取消设置JAVA_HOME,正如Gon建议的那样。这有效(或者可能与chmod结合使用)。