最近、科学界から公開されているWebガジェットをShengxinスキルツリーのサーバーに移植しました。多くのツールがrJavaのRパッケージに依存していることがわかりました。実際、Ubuntuにインストールするのはまだ難しいので、共有してください。
完全に自分だけのサーバーなので、購入時に最新バージョンのR言語をインストールしました
ubuntu@VM-0-3-ubuntu:~$ which R
/usr/bin/R
ubuntu@VM-0-3-ubuntu:~$ R --version
R version 3.6.1(2019-07-05)--"Action of the Toes"Copyright(C)2019 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu(64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.
ただし、JAVAの場合、**より安定したjava8 **を選択しました
ubuntu@VM-0-3-ubuntu:~$ which java
/usr/bin/java
ubuntu@VM-0-3-ubuntu:~$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment(build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM(build 25.222-b10, mixed mode)
次に、これらのシステム環境に基づいてrJavaのインストールを開始します。
コードは次のとおりです。
options("repos"=c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("rJava")
最初のエラーは次のとおりです。
configure: error: Java Development Kit(JDK) is missing or not registered in R
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.
エラーログにroot権限を使用する必要があることが示されているので、次のコマンドを実行します: R CMD javareconf
R CMD javareconf
を実行しても問題は解決しませんでしたが、新しいエラーが発生しました。
trying to compile and link a JNI program
detected JNI cpp flags :
detected JNI linker flags :-L$(JAVA_HOME)/lib/amd64/server -ljvm
During startup - Warning message:
Setting LC_CTYPE failed, using "C"
gcc -std=gnu99 -I"/usr/share/R/include"-DNDEBUG -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.o
conftest.c:1:10: fatal error: jni.h: No such file or directory
# include <jni.h>^~~~~~~
compilation terminated./usr/lib/R/etc/Makeconf:167: recipe for target 'conftest.o' failed
make:***[conftest.o] Error 1
Unable to compile a JNI program
同様に、Googleはキーワードを検索し、解決策を見つけます:https://stackoverflow.com/questions/42562160/r-cmd-javareconf-not-finding-jni-h
問題は、jdkの代わりにjava jreをインストールしたため、再度インストールする必要があることです。
# sudo apt install openjdk-8-jre-headless
# jdkの代わりに上記のコードを使用する前にjreをインストールしました
sudo apt-get install openjdk-8-jdk
それから成功しました!
もちろん、WindowsプラットフォームとMACプラットフォームでは、問題の解決策は明らかに異なりますが、問題を解決するという考え方は同じです。 ****
別の同様のチュートリアル: [** Tsinghua YuanのRイメージにrvestパッケージがないのはなぜですか**](http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247491904&idx=2&sn=d7fc27ace57d23b593d0119888b8f0de&chksm=9b4ba1fbac3c28ed890cece53957e394968e687a729fec932b7a5c73516b708ddfe66cdaf755&scene=21#wechat_redirect)
Recommended Posts