JDKのアンインストールでハマった
ことの発端は何だったか忘れた。フツーにJDKのアップデートをしようとしたのだと思うが、途中で何かがおかしくなり、一旦アンインストールする必要にせまられた。そしてハマった。以下は迷走の記録で、他の誰にも役に立たないだろうし、自分が今思い返しても何が何だかよくわからないが、とりあえず書き記しておく。JDKアンインストールの正式な手順は後半に記載しておくので、迷走記録はスキップしてもらっていいです。
当初、JDKをアンインストールする意図で/usr/javaをまるごとrmで削除した。
で、再インストールしたのだが。(これ以前のダウンロード手順等は省略)
1.
# sh jdk_6u29_linux_x64_rpm.bin
上記を実行すると、以下のエラーになる。
package jdk-2000:1.6.0_29-fcs.x86_64 is already installed.
きちんとアンインストールされていないからこういうエラーになる。
分かっていながら、次に以下を試す(完全に迷走している)。
2.
# rpm -ivh –force jdk_6u29_linux_x64_rpm
上記により強制的にインストール実行すると、パスは展開されるがjava実行時に別のエラーになる(そりゃそうだ)。
Error: unpack could not create JAR file:/path/to/jar file
何かヤケクソになり、2.の後に1.を実行、というのもやってみた。この時生きているのは古いJavaの方で、Versionチェックをするとインストールした/usr/java/default/bin/javaではなく、/usr/bin/javaが実行されている。パスを指定すると以下のエラーになる。
# /usr/java/default/bin/java -version
Error occurred during initialization of VM java/lang/ NoClassDefFoundError: java/lang/Object
・・・と、うだうだと書き連ねたが、JDKのアンインストール手順はというと。
結論としてはrpm -qaで”fcs”とつく対象を洗い出し、それを削除すればよい。
# rpm -qa | grep jdk
# rpm -e jdk_1.6.0_29.fcs
この後sh jdk_6u29_linux_x64_rpm.binを実行したところ、無事にパスが展開されてホッとする。ただしこのままだとまだ/usr/bin/javaが有効なので以下の作業も実施。
# mv /usr/bin/java /usr/bin/java.bak
# ln -s /usr/java/default/bin/java /usr/bin/java#java -version
java version “1.6.0_29″ ←ようやく期待値が得られた…
やれやれ・・・