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
参考
- CentOS 7にJDK(openJDK)をインストールする(rpm)
https://internalservererror.info/2018/04/29/centos-7%E3%81%ABjdk%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8Brpm/ - 参考メモ/CentOS7 の OpenJDK パッケージの構成メモ(@msakamoto_sf 様)
https://qiita.com/msakamoto_sf/items/92d421bf724efa740350 - CentOSのalternativesでJavaのバージョン管理
http://www.task-notes.com/entry/20150530/1432954800