先日、ある案件でCentOS 6.4 (x64) にjdkの1.4を入れるということがありました。
(なんで今頃1.4やねんという話はおいといて…)
いつものようにrpmを実行すると...。
rpm -ivh j2sdk-1_4_2_07-linux-i586.rpm
準備中...
########################################### [100%]
1:j2sdk ########################################### [100%]
/var/tmp/rpm-tmp.njFzyC: /usr/java/j2sdk1.4.2_07/lib/unpack: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルやディレクトリはありません
Error: unpack could not create /usr/java/j2sdk1.4.2_07/lib/tools.jar. Please refer to the TroubleshootingSection of the Installation Instructions on the download page.警告: %post(j2sdk-2000:1.4.2_07-fcs.i586) scriptlet failed, exit status 1
まあ上記のようなエラーが出るわけですが、「ld-linux.so.2」が無いというメッセージです。
ld-linux.so.2は、動的なリンカ・ローダの一種とのこと。とりあえず悪さはしなさそう。
(参考) http://kazmax.zpp.jp/cmd/l/ld.so.8.html
なので、以下の方法で入れてあげます。
(参考) http://slumbers99.blogspot.jp/2012/04/centos-64bit-libld-linuxso2-bad-elf.html
yum install ld-linux.so.2
いろいろ依存するrpmも入りましたが、無事「ld-linux.so.2」も入ったので、再度jdkのインストールにトライ。
rpm -ivh j2sdk-1_4_2_07-linux-i586.rpm
パッケージ j2sdk-2000:1.4.2_07-fcs.i586 は既にインストールされています。
あらら。インストール済みになってしまっているようです。
いったんアンインストールしましょう。以下のコマンドでインストール名を調査。
rpm -qa | grep j2sdk
j2sdk-1.4.2_07-fcs.i586
ほう、そんな名前になってますか。ではその名前でアンインストールを実施します。
rpm -e j2sdk-1.4.2_07-fcs.i586
消えたかどうか確認します。
rpm -qa | grep j2sdk
無事に消えたようなので再度インストールします。
rpm -ivh j2sdk-1_4_2_07-linux-i586.rpm
うまくいったようです。パス「/usr/java/j2sdk1.4.2_07」に入りました。