[R-sig-Debian] So nearly there, but can't install rJava

Chris Evans chr|@ho|d @end|ng |rom p@yctc@org
Tue Jan 22 14:45:09 CET 2019


Thanks Dirk and Enrico,

First clarification: I'm in this mess because I'm trying to run R 3.5.2 within Debian stable (9/"sretch") using the stretch-cran35 repository. That uses and provides r-api-35 but many of the packages depend upon r-api-3.  As Johannes said a day or so back, the way around this is to use install.packages() in R to get the packages you want. That leads you into quite a lot of manual identification of dependencies and I worked through all the ones I hit until I was left with the only packages I use that I can't install sharing just one dependency: they all depend on rJava and I can't install from the r-cran-rjava package in the stretch-cran35 repository because that's one of the packages that depends on r-api-3.  

I thought that installing the default java and jdk Debian packages and using R CMD javareconf (as root) would set the right variables for install.packages("rJava") to work but no go.  It fails with this information:

checking Java support in R... present:
interpreter : '/usr/lib/jvm/default-java/jre/bin/java'
archiver    : '/usr/lib/jvm/default-java/bin/jar'
compiler    : '/usr/lib/jvm/default-java/bin/javac'
header prep.: '/usr/lib/jvm/default-java/bin/javah'
cpp flags   : ''
java libs   : ''
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.

If you don't have root privileges, run
R CMD javareconf -e
to set all Java-related variables and then install rJava.

ERROR: configuration failed for package ‘rJava’
* removing ‘/usr/local/lib/R/site-library/rJava’

I think the problem may be options setting where R/rJava will look for Java so I tried:

> options(java.home="/usr/lib/jvm/java-8-openjdk-amd64/")
> options("java.home")
$java.home
[1] "/usr/lib/jvm/java-8-openjdk-amd64/"

but that doesn't change things. 

As far as I can see Debian is happy with the setup of java and javac:

root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# javac -version
javac 1.8.0_181
root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# update-alternatives --config javac
There is only one alternative in link group javac (providing /usr/bin/javac): /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
Nothing to configure.
root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.
root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# 

And I have the full jdk not just the headless version I can see the header files:

root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# ls -lsart /usr/lib/jvm/java-8-openjdk-amd64/include/
total 220
80 -rw-r--r-- 1 root root 78425 Oct 22 19:05 jvmti.h
 8 -rw-r--r-- 1 root root  4771 Oct 22 19:05 jvmticmlr.h
76 -rw-r--r-- 1 root root 74698 Oct 22 19:05 jni.h
 8 -rw-r--r-- 1 root root  7404 Oct 22 19:05 jdwpTransport.h
12 -rw-r--r-- 1 root root  9687 Oct 22 19:05 jawt.h
24 -rw-r--r-- 1 root root 21125 Oct 22 19:05 classfile_constants.h
 4 drwxr-xr-x 2 root root  4096 Jan 22 08:09 linux
 4 drwxr-xr-x 3 root root  4096 Jan 22 08:09 .
 4 drwxr-xr-x 8 root root  4096 Jan 22 12:55 ..
root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# 

But I can't reconfigure R for Java:

root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# R CMD javareconf
*** JAVA_HOME is not a valid path, ignoring
Java interpreter : /usr/lib/jvm/default-java/jre/bin/java
/usr/lib/R/bin/javareconf: 1: /usr/lib/R/bin/javareconf: /usr/lib/jvm/default-java/jre/bin/java: not found


*** Java interpreter doesn't work properly.

root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# 

I hope this helps someone see something I can fix!

Tangential question: surely I'm not rare in running R 3.5.2 on Stretch am I?  
Other tangential question: is there anything that can be done to fix the r-api-3/r-api-3.5 issue.  You can see I'm no programmer or sysadmin but if there is anything I can do to help ...?

TIA all,

Chris



----- Original Message -----
> From: "Dirk Eddelbuettel" <edd using debian.org>
> To: "Chris Evans" <chrishold using psyctc.org>
> Cc: "r-sig-debian" <r-sig-debian using r-project.org>
> Sent: Tuesday, 22 January, 2019 12:21:39
> Subject: Re: [R-sig-Debian] So nearly there, but can't install rJava

> On 22 January 2019 at 10:14, Chris Evans wrote:
>| root using DebianAdvent:/home/chris/Downloads/gmp-6.1.2# apt-get install
>| openjdk-8-jdk-headless
>| Reading package lists... Done
>| Building dependency tree
>| Reading state information... Done
>| openjdk-8-jdk-headless is already the newest version (8u181-b13-2~deb9u1).
>| openjdk-8-jdk-headless set to manually installed.
>| 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
>| 
>| Anyone else got any ideas?
> 
> Install the full-blown jdk no just headless.
> 
> In the sources for rJava I have as a build-depends
> 
>   openjdk-10-jdk
> 
> which may of course be a virtual. At some point we had more than JDK
> implementation.  See what you can find there.
> 
> Dirk
> 
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org

-- 
Chris Evans <chris using psyctc.org> Skype: chris-psyctc
Visiting Professor, University of Sheffield <chris.evans using sheffield.ac.uk>
I do some consultation work for the University of Roehampton <chris.evans using roehampton.ac.uk> and other places but this <chris using psyctc.org> remains my main Email address.
I have "semigrated" to France, see: https://www.psyctc.org/pelerinage2016/semigrating-to-france/ if you want to book to talk, I am trying to keep that to Thursdays and my diary is now available at: https://www.psyctc.org/pelerinage2016/ecwd_calendar/calendar/
Beware: French time, generally an hour ahead of UK.  That page will also take you to my blog which started with earlier joys in France and Spain!



More information about the R-SIG-Debian mailing list