为了账号安全,请及时绑定邮箱和手机立即绑定

在 R 3.6 上为 ubuntu Bionic Beaver 安装 rJava 时出现

在 R 3.6 上为 ubuntu Bionic Beaver 安装 rJava 时出现

catspeake 2024-01-05 14:46:31
我有一个非常常见的问题,即 rJava 在 Ubuntu 上无法正确安装。这个问题已经在多个地方进行了讨论,这里,这里,这里,仅举几例。基本问题是在安装 rJava 包时,会产生以下错误消息configure: error: Unable to run a simple JNI program. Make sure you have configured R with Java support (see R documentation) and check config.log for failure reason.Warning in system(cmd) : error in running commandERROR: configuration failed for package ‘rJava’* removing ‘/home/jonno/R/x86_64-pc-linux-gnu-library/3.6/rJava’对于这个问题有多种密切相关的解决方案。其中大多数用于为 R (也是一个变体sudo R CMD javareconf)配置 Java 。有些人建议在环境变量中设置路径(另一些人则建议不要这样做)。其他人建议卸载并重新安装 R,而其他人则建议从 cran 安装 rJava。有几个人推荐。这些解决方案还有其他变体。-eJAVA_HOMEupdate alternatives我已经尝试了上述所有方法的组合,但一无所获,所以我显然做错了什么。输入echo $JAVA_HOME退货/usr/lib/jvm/java-11-openjdk-amd64我的等/环境看起来像这样PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/$MKL_THREADING_LAYER=GNUJAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"当我运行 R CMD javaconf 时,它看起来像这样Java interpreter : /usr/lib/jvm/java-11-openjdk-amd64/javaJava version     : 11.0.4Java home path   : /usr/lib/jvm/java-11-openjdk-amd64Java compiler    : /usr/lib/jvm/java-11-openjdk-amd64/bin/javacJava headers gen.: /usr/bin/javahJava archive tool: /usr/lib/jvm/java-11-openjdk-amd64/bin/jartrying to compile and link a JNI program detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linuxdetected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvmgcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux    -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c conftest.c -o conftest.ogcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-11-openjdk-amd64/lib/server -ljvm -L/usr/lib/R/lib -lR我做错了什么以及如何正确安装 rJava?
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

我调查了原始海报(我们在同一个地方工作),问题是在 OpenJDK11 中,他们移动了.soJVM 所在的一些文件,特别libjvm.so是 Ubuntu 包中的文件现在位于/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/.

这意味着,即使您安装适用于 rJava 的 Ubuntu 软件包,apt install r-cran-rjava当您尝试安装时也会失败library(rJava)

解决方案是通过添加/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/以下内容来添加$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server:$LD_LIBRARY_PATH

到你的末尾~/.bashrc并开始一个新的shell(或source ~/.bashrc)。

这是我们必须为 OpenJDK 的集中安装修复的问题,例如: https: //github.com/UCL-RITS/rcps-buildscripts/blob/master/adoptopenjdk-11.0.3_install.sh#L46

如果您想在从 Gnome 启动的 Rstudio 中使用此功能,则需要将该目录添加到ldconfig.

As root(或 with sudo)创建一个文件,/etc/ld.so.conf.d/您应该在其中调用带有扩展名的内容.conf,例如java.conf包含以下行:

/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server

然后root运行

ldconfig -v

这应该将该目录添加到通过 GNOME 搜索启动的可执行文件的位置。问题的这个特定部分(GNOME 忽略 中的设置bashrc)至少自 9.04 以来一直是 Ubuntu 中的一个问题(https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/366728/)。


查看完整回答
反对 回复 2024-01-05
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信