今天共享服务器的学员发现了一个问题,就是装不了rJava。但是,我装了下,发现没问题啊,然后,我就问他,他是哪里加载的,他回答的说,是在Rstduio-server上。
我觉得此时有蹊跷,于是,我赶紧上了服务器做测试,首先安装的时候,提有如下的提示。
Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/xzg/R/x86_64-pc-linux-gnu-library/4.3/rJava’
ERROR: dependency ‘rJava’ is not available for package ‘xlsxjars’
* removing ‘/home/xzg/R/x86_64-pc-linux-gnu-library/4.3/xlsxjars’
ERROR: dependencies ‘rJava’, ‘xlsxjars’ are not available for package ‘xlsx’
* removing ‘/home/xzg/R/x86_64-pc-linux-gnu-library/4.3/xlsx’
The downloaded source packages are in
‘/tmp/Rtmpkx8xeJ/downloaded_packages’
Warning messages:
1: In install.packages("xlsx") :
installation of package ‘rJava’ had non-zero exit status
2: In install.packages("xlsx") :
installation of package ‘xlsxjars’ had non-zero exit status
3: In install.packages("xlsx") :
installation of package ‘xlsx’ had non-zero exit status
也就是,他让我以root运行R CMD javareconf
,我按照他的要求做了,然后我用管理员成功的为全局装了xlsx,并且在终端测试也可以,于是我让学员继续试试,结果安装没问题,加载出问题了。
> library(xlsx)
Error: package or namespace load failed for ‘xlsx’:
.onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/test/R/x86_64-pc-linux-gnu-library/4.3/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
我一看,没找到libjvm.so而已,简单,于是我取巧的直接把这些共享文件,复制到了/usr/lib
中。结果事情并没有那么简单,接二连三的报错席卷而来。
我觉得事情没有那么简单,一定是哪里出错了,于是我把我自作聪明复制粘贴的文件都删了,开始问GPT。
如下是交流过程:
我参考它的意见的 1、2、3、4、5、6点,尽量的一个一个做了,发现并没有改善结果。于是,我决定还是听取它的最后一个建议:
如果以上步骤都无法解决问题,建议您查看RStudio和rJava的官方文档或论坛,看看是否有其他用户报告了类似的问题,并且是否有专门的解决方案。此外,您也可以考虑在R社区论坛或者Stack Overflow等平台上寻求帮助,那里的用户可能遇到过相同的问题,并能提供更具体的解决方法。
我用关键词: ”rstudio serve rjava libjvm.so: cannot open shared object file: No such file or directory“找到了一个答案,出自,https://stackoverflow.com/questions/28462302/libjvm-so-cannot-open-shared-object-file-no-such-file-or-directory
非常简单,就3步,关闭Rstudio-server,配置变量,重启Rstudio-server.
sudo rstudio-server stop
# 可选: R CMD javareconf
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
export LD_LIBRARY_PATH=$JAVA_HOME/lib/amd64:$LD_LIBRARY_PATH
sudo rstudio-server start
所以,你们觉得ChatGPT到底有没有你想的那么有用呢?