javaのインストール

RHELをインストールした際に、javaがすでにインストールされているのを知らずに最新のOraclejavaをインストールして訳が分からないようになった時。

これまでは、findコマンドでjava関連のファイル探して削除…っていうゴリ押しをしていたのですが…
ちゃんと調べてみると、それでは全然ダメだということが分かりました。(当たり前!!)


そもそも、プリインストールされてるjavaは何者か?!
ということを調べるために以下のことをします。
javaのバージョンを確認
# java -version
…ここにバージョンとどんなJREが入っているか書かれていたけど、メモするの忘れてた

調べた結果、プリインストールされているjavaはGUN javaだそうです。
Oraclejavaとの互換性が低いので、やはり入れ替えた方がいいのですね!
Wikipediaの説明
http://ja.wikipedia.org/wiki/GNU_Compiler_for_Java

rpmパッケージでインストールされているものがないか確認
#rpm -qa | grep java
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

grep java でGUN javaのパッケージ名が引っかかるようになっている。
ちなみに、Oraclejavaのパッケージ名を知りたい時は、以下の通り
#rpm -qa | grep jre
jre-1.6.0_29-fcs

このjava-1.4.2-gcj-compat-1.4.2.0-40jpp.115を削除すれば良さそうだけど…
シンボリックリンクが設定されているみたいなので、その設定を変更する必要がありそう。

ちなみに、削除する方法が全然ダメだと気付いたのがこの記事です。
http://netlog.jpn.org/r271-635/2009/03/linux_rhelgnu_javasunjava.html

全然勉強していなくてすみません…

OracleJREをインストールしよう

変更していない状態でalternativesコマンドで設定を確認する。
#alternatives --display java
java -ステータスは自動です。



現在の「最適」バージョンは /usr/lib/jvm/jre-1.4.2-gcj/bin/java です。

これにOracleJREを選択肢に加える処理がいる。
でも、rpmパッケージでjavaをインストールするとシンボリックリンクが自動で作成されたはず…?
(以前失敗した理由がこれだった気がする。)

ここで、GUNとOracleを共存させる必要性がないからいいかなーと思って、GUNを削除する方向に変えました。
(早くjavaを入れたかったから、またよく確認せずにしてしまった…反省)

#rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

削除されていることを確認
#rpm -qa | grep java
#java -version
ともに何も表示されないことから、削除は完了。

ようやくJREのインストール

OracleのHPからダウンロードしてきたJRErpmパッケージを実行します。
実行できるようにする
#chmod a+x jre-6u29-linux-x64-rpm.bin

実行する
#./jre-6u29-linux-x64-rpm.bin

Done
で完了!

#java -version
java version "1.6.0_29"
Java(TM) SE Runtime Enviroment …
Java HotSpot(TM) Client VM


反省点や課題
次回一からjava環境を構築する時に試したいこと。

alternativesコマンドによる、シンボリックリンクの管理

今回はrpmパッケージのインストールでこれまで失敗しすぎて怖気づいてしまいました。

rpmパッケージで先にJREをインストールする。
alternativesコマンドで、javaシンボリックリンクOracleJREを選択肢として増やす。
選択肢を切り替える。

の一連の流れを試してみたいと思います。