Posted at

OpenJDK8をRPMでインストールする

More than 1 year has passed since last update.

OracleJDKからOpenJDKに移行することになったので、OpenJDKのインストール手順をまとめるよ。


前提条件


  • 既存のOracleJDKは残しておく

  • 諸事情によりyumでまるっとインストールはしない(余計なものは入れない)rpm版で。

  • develはインストールしない(必要であればしてください)


環境

$ cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)


手順


1. openJDKをゲットする

ここのサイトあたりから探すと良いかも。

https://pkgs.org/download/openjdk

今回落としてきたのは

* java-1.8.0-openjdk-headless-1.8.0.171-7.b10.el7.x86_64.rpm

* java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64.rpm

$ wget 'http://mirror.centos.org/centos/7/updates/x86_64/Packages/java-1.8.0-openjdk-headless-1.8.0.171-7.b10.el7.x86_64.rpm'

$ wget 'http://mirror.centos.org/centos/7/updates/x86_64/Packages/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64.rpm'


2. いろいろアップデート

そのままインストールしてもエラーになるので、以下をupdate

$ yum update copy-jdk-configs

$ yum update nss


3. インストール

headlessがメインなので、headlessを先にインストールしましょう。

$ rpm -ivh java-1.8.0-openjdk-headless-1.8.0.171-7.b10.el7.x86_64.rpm

$ rpm -ivh java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64.rpm

インストール先は/usr/lib/jvmに。OracleJDKと全然違うなぁ。

/usr/lib/jvm

drwxr-xr-x 3 root root 16 5月 9 22:55 java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64
lrwxrwxrwx 1 root root 21 7月 26 15:30 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root 27 7月 26 15:30 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx 1 root root 35 7月 26 15:30 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx 1 root root 49 7月 26 15:30 jre-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64 -> java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64/jre


4. バージョン管理の確認

alternativeで管理するらしい。rpmでインストールしたら自動的にopenjdkの方を向いてたので、今回は割愛。

# alternatives --config java

2 プログラムがあり 'java' を提供します。

選択 コマンド
-----------------------------------------------
1 /usr/java/jdk1.8.0_162/jre/bin/java
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64/jre/bin/java)

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:


5. java -versionで確認できるバージョンの向き先を変える

/etc/profile.d/java.shのJAVA_HOMEを書き換える必要があるらしい

yumだと書き換えてくれるんだろうか。。

$ cd /etc/profile.d/

$ vi java.sh
export JAVA_HOME=/etc/alternatives/jre #これ追加
#export JAVA_HOME=/usr/java/latest #コメントアウト or delete

$ source /etc/profile.d/java.sh
$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)


おまけ

tomcatとかでJAVA_HOMEを設定してるやつらがいたら変えるのを忘れずに。

/opt/java で設定していたら、以下のシンボリックリンクを変えると割と平和的に解決する

# cd /opt

java -> /usr/java/latest
# rm java
# ln -s /etc/alternatives/jre java
java -> /etc/alternatives/jre


参考