As ever, I learn from this: I didn't know apt-file. Got it, installed it, used it: root at DebianAdvent:/home/chris/Downloads/gmp-6.1.2# apt-file search jni.h android-libnativehelper-dev: /usr/include/android/nativehelper/jni.h android-platform-frameworks-native-headers: /usr/include/android/android/asset_manager_jni.h android-platform-frameworks-native-headers: /usr/include/android/android/native_window_jni.h gcj-6-jdk: /usr/lib/gcc/x86_64-linux-gnu/6/include/jni.h gcj-6-jdk: /usr/lib/jvm/java-1.5.0-gcj-6-amd64/include/jni.h libavcodec-dev: /usr/include/x86_64-linux-gnu/libavcodec/jni.h libgluegen2-build-java: /usr/share/gluegen2/make/stub_includes/jni/jni.h openjdk-8-jdk-headless: /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h I was 99% sure I already had that last installed. Sure enough: root at 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? Chris> From: "Johannes Ranke" <johannes.ranke at jrwb.de> > To: "r-sig-debian" <r-sig-debian at r-project.org>, "Chris Evans" > <chrishold at psyctc.org> > Sent: Tuesday, 22 January, 2019 08:47:28 > Subject: Re: [R-sig-Debian] So nearly there, but can't install rJava> Am Dienstag, 22. Januar 2019, 08:27:14 CET schrieb Chris Evans:> ...> > error: jni.h: No such file or directory> > #include <jni.h>> > ^> > compilation terminated.> You get a complaint that jni.h is missing. So one strategy would be to look for > this file in the available packages:> sudo apt-file search jni.h> One of the packages returned is openjdk-8-jdk-headless (which I happen to have > installed). I think (others will know for certain) that you need a Java > Development Kit (jdk) not just a runtime environment (jre).> Cheers,> Johannes-- Chris Evans <chris at psyctc.org> Skype: chris-psyctc Visiting Professor, University of Sheffield <chris.evans at sheffield.ac.uk> I do some consultation work for the University of Roehampton <chris.evans at roehampton.ac.uk> and other places but this <chris at 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! [[alternative HTML version deleted]]
Dirk Eddelbuettel
2019-Jan-22 12:19 UTC
[R-sig-Debian] So nearly there, but can't install rJava
On 22 January 2019 at 10:14, Chris Evans wrote: | Anyone else got any ideas? Java can be tricky and that is one of the reasons we have r-cran-rjava prebuilt for you. It should resolve issues and work because other binary packages depend on it. Otherwise, as Johannes hinted, you need a JDK if you build with rJava from CRAN source, and 'sudo R CMD javareconf' should work. I don't do much work on Debian stable so no concrete tips from me. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
Dirk Eddelbuettel
2019-Jan-22 12:21 UTC
[R-sig-Debian] So nearly there, but can't install rJava
On 22 January 2019 at 10:14, Chris Evans wrote: | root at 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 at debian.org
Enrico Schumann
2019-Jan-22 12:22 UTC
[R-sig-Debian] So nearly there, but can't install rJava
>>>>> "Chris" == Chris Evans <chrishold at psyctc.org> writes:Chris> As ever, I learn from this: I didn't know apt-file. Got it, installed it, used it: Chris> root at DebianAdvent:/home/chris/Downloads/gmp-6.1.2# apt-file search jni.h Chris> android-libnativehelper-dev: /usr/include/android/nativehelper/jni.h Chris> android-platform-frameworks-native-headers: /usr/include/android/android/asset_manager_jni.h Chris> android-platform-frameworks-native-headers: /usr/include/android/android/native_window_jni.h Chris> gcj-6-jdk: /usr/lib/gcc/x86_64-linux-gnu/6/include/jni.h Chris> gcj-6-jdk: /usr/lib/jvm/java-1.5.0-gcj-6-amd64/include/jni.h Chris> libavcodec-dev: /usr/include/x86_64-linux-gnu/libavcodec/jni.h Chris> libgluegen2-build-java: /usr/share/gluegen2/make/stub_includes/jni/jni.h Chris> openjdk-8-jdk-headless: /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h Chris> I was 99% sure I already had that last installed. Sure enough: Chris> root at DebianAdvent:/home/chris/Downloads/gmp-6.1.2# apt-get install openjdk-8-jdk-headless Chris> Reading package lists... Done Chris> Building dependency tree Chris> Reading state information... Done Chris> openjdk-8-jdk-headless is already the newest version (8u181-b13-2~deb9u1). Chris> openjdk-8-jdk-headless set to manually installed. Chris> 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Chris> Anyone else got any ideas? Chris> Chris I have not followed the discussion closely, so my apologies if I am off-topic. But on Ubuntu 18.04 at least you can run sudo apt install openjdk-11-jdk R CMD javareconf -e and then in R install.packages("rJava") should work. kind regards Enrico >> From: "Johannes Ranke" <johannes.ranke at jrwb.de> >> To: "r-sig-debian" <r-sig-debian at r-project.org>, "Chris Evans" >> <chrishold at psyctc.org> >> Sent: Tuesday, 22 January, 2019 08:47:28 >> Subject: Re: [R-sig-Debian] So nearly there, but can't install rJava >> Am Dienstag, 22. Januar 2019, 08:27:14 CET schrieb Chris Evans: >> ... >> > error: jni.h: No such file or directory >> > #include <jni.h> >> > ^ >> > compilation terminated. >> You get a complaint that jni.h is missing. So one strategy would be to look for >> this file in the available packages: >> sudo apt-file search jni.h >> One of the packages returned is openjdk-8-jdk-headless (which I happen to have >> installed). I think (others will know for certain) that you need a Java >> Development Kit (jdk) not just a runtime environment (jre). >> Cheers, >> Johannes Chris> -- Chris> Chris Evans <chris at psyctc.org> Skype: chris-psyctc Chris> Visiting Professor, University of Sheffield <chris.evans at sheffield.ac.uk> Chris> I do some consultation work for the University of Roehampton <chris.evans at roehampton.ac.uk> and other places but this <chris at psyctc.org> remains my main Email address. Chris> 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/ Chris> 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! -- Enrico Schumann Lucerne, Switzerland http://enricoschumann.net
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 at 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 at DebianAdvent:/home/chris/Downloads/gmp-6.1.2# javac -version javac 1.8.0_181 root at 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 at 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 at 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 at 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 at DebianAdvent:/home/chris/Downloads/gmp-6.1.2# But I can't reconfigure R for Java: root at 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 at 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 at debian.org> > To: "Chris Evans" <chrishold at psyctc.org> > Cc: "r-sig-debian" <r-sig-debian at 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 at 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 at debian.org-- Chris Evans <chris at psyctc.org> Skype: chris-psyctc Visiting Professor, University of Sheffield <chris.evans at sheffield.ac.uk> I do some consultation work for the University of Roehampton <chris.evans at roehampton.ac.uk> and other places but this <chris at 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!