error: unable to load installed packages just now

37,410

Solution 1

I found the solution:

export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/lib/amd64:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server

then

sudo R CMD javareconf

Note: The path (java-7-oracle) needs to be updated based on your Java installation.

Solution 2

For Linux(Ubuntu) users: If you have oracle-java (7/8) installed. It'll be at this location /usr/lib/jvm and sudo access is required.

Create the file /etc/ld.so.conf.d/java.conf with the following entries:

/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server

(Replace java-8-oracle with java-7-oracle depending on your java version)

Then:

sudo ldconfig

Restart RStudio and then install the rJava package.

OR

Also an alternative method is to export LD_LIBRARY_PATH with the value of Java library path obtained from the command R CMD javareconf -e and run install.packages

Solution 3

I got similar issue and was able to resolve it by running

R CMD javareconf -e

Output of the R CMD javareconf -e

Java interpreter : /export/apps/jdk/JDK-1_6_0_27/jre/bin/java
Java version     : 1.6.0_27
Java home path   : /export/apps/jdk/JDK-1_6_0_27
Java compiler    : /export/apps/jdk/JDK-1_6_0_27/bin/javac
Java headers gen.: /export/apps/jdk/JDK-1_6_0_27/bin/javah
Java archive tool: /export/apps/jdk/JDK-1_6_0_27/bin/jar
Java library path: /export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64 -L/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags    : -I/export/apps/jdk/JDK-1_6_0_27/include -I/export/apps/jdk/JDK-1_6_0_27/include/linux

The following Java variables have been exported:
JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH
Running: /bin/bash

After setting LD_LIBRARY_PATH to the same value as JAVA_LD_LIBRARY_PATH as shown in the output above. I was able to install rj.

export LD_LIBRARY_PATH=/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

Run R and then install rj by

install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")

Solution 4

I did the following and it worked for me:

export LD_LIBRARY_PATH=$JAVA_LD_LIBRARY_PATH
sudo R CMD javareconf

I had to restart R then as well.

Solution 5

Years later, I ended up on this question after searching for an error reported by R after I had unsuccessfully installed a package on that required shifting to Oracle's Java.

All I had to do to fix it was:

$ sudo R CMD javareconf

Share:
37,410
Alex Luya
Author by

Alex Luya

Updated on July 09, 2022

Comments

  • Alex Luya
    Alex Luya almost 2 years

    When I tried to run the R console in Eclipse, I got this error:

    ....Please make sure that R package 'rj' (1.1 or compatible) is installed...
    

    So I tried to install it in the R console like this:

    install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")
    

    and got this error:

     ** testing if installed package can be loaded
     Error : .onLoad failed in loadNamespace() for 'rj.gd', details:
     call: dyn.load(file, DLLpath = DLLpath, ...)
     error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rj.gd/libs/rj.gd.so':
     libjvm.so: cannot open shared object file: No such file or directory
     Error: loading failed
     Execution halted
     ERROR: loading failed
    

    and I found that when installing rJava using: install.packages("rJava") gets a similar error:

    ** testing if installed package can be loaded
    Error : .onLoad failed in loadNamespace() for 'rJava', details:
    call: dyn.load(file, DLLpath = DLLpath, ...)
    error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rJava/libs/rJava.so':
    libjvm.so: cannot open shared object file: No such file or directory
    Error: loading failed
    Execution halted
    ERROR: loading failed
    

    When I run sudo R CMD javareconf,I got this output:

    Java interpreter : /usr/bin/java
    Java version     : 1.7.0
    Java home path   : /usr/lib/jvm/java-7-oracle/jre
    Java compiler    : /usr/bin/javac
    Java headers gen.: /usr/bin/javah
    Java archive tool: /usr/bin/jar
    NOTE: Your JVM has a bogus java.library.path system property!
    Trying a heuristic via sun.boot.library.path to find jvm library...
    Java library path: $(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/lib/amd64/server
    JNI linker flags : -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/lib/amd64/server -ljvm
    JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
    
    Updating Java configuration in /etc/R
    Done.
    

    by the way,my configuration is:

    Ubuntu 11.10 64bit
    Eclipse 3.7
    Oracle-1.7-jdk
    R version 2.15.1 
    
  • Eric Guo
    Eric Guo over 10 years
    If you using RStudio, you may also have to restart it by service rstudio-server restart
  • Gianluca78
    Gianluca78 over 9 years
    Great work! Could you please explain what have you done? It is not clear for me (but I'm very happy because it worked!). Thank you very much!
  • Tejus Prasad
    Tejus Prasad over 9 years
    ldconfig is a command which will configure dynamic linker run-time bindings. It creates and updates the necessary links and cache for use by the run-time linker.
  • KarthikS
    KarthikS over 8 years
    Just type export in the command line. After following what @user73515 has mentioned, you may see that LD_LIBRARY_PATH has got updated
  • user3673
    user3673 almost 7 years
    I spoke too soon. The problem arose again and running javareconf again didn't fix it this time. Moreover, running sudo R to install.packages("rJava") didn't fix it either.
  • hhh
    hhh almost 7 years
    +1 this command seemed to fix some env parameters but still stuck in trying to install rJava, any ideas for this here?
  • Thomas Luechtefeld
    Thomas Luechtefeld almost 7 years
    for some reason running ldconfig told me my /usr/lib/libjvm.so was 'empty'. I fixed this by sudo ln -s /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjv‌​m.so (you should use your own java version)
  • Tejus Prasad
    Tejus Prasad almost 7 years
    @ThomasLuechtefeld : Yeah thats true. You have to modify it as mentioned in the answer "depending on your java version". Thanks for mentioning command in comment.
  • alonso s
    alonso s over 6 years
    Can someone explain in some detail what does R CMD javareconf do?
  • Bunny Rabbit
    Bunny Rabbit over 5 years
    I wasted a lot of time, until I found your answer, the key was to run the second command as root.
  • Cainã Max Couto-Silva
    Cainã Max Couto-Silva almost 4 years
    Worked great for me! Thx!