2012-04-05

RHEL6: JDK: /lib/ld-linux.so.2: bad ELF interpreter

RHEL6 に JDK をインストールしようとすると、エラーが発生。

[rhel6]# ./jdk-6u31-linux-i586.bin
Unpacking...
Checksumming...
Extracting...
./jdk-6u31-linux-i586.bin: ./install.sfx.10908: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Failed to extract the files.  Please refer to the Troubleshooting section of the Installation Instructions on the download page for more information.

Google 先生によると、ld-linux.so.2 は libstd++ パッケージに入っているらしい。

[rhel6]# rpm -q libstdc++
libstdc++-4.4.6-3.el6.x86_64

既に入ってますが。RHEL5 ではどうだったかというと、

[rhel5]# rpm -q libstdc++
libstdc++-4.1.2-46.el5
libstdc++-4.1.2-46.el5

ああ、分かった。64bit OS に 32bit JDK を入れようとしたからだ。つまり、

  • 64bit RHEL に 32bit JDK を入れる場合、32bit libstdc++ パッケージが必要。
  • 64bit RHEL5 には 32bit libstdc++ が入っているが、64bit RHEL6 には入っていない。

ならば RHEL6 DVD から入れれば解決・・・、

[rhel6]# rpm -ivh libstdc++-4.4.6-3.el6.i686.rpm
warning: libstdc++-4.4.6-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
        ld-linux.so.2 is needed by libstdc++-4.4.6-3.el6.i686
        ld-linux.so.2(GLIBC_2.3) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6 is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.0) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.1) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.1.3) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.2) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.3) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.3.2) is needed by libstdc++-4.4.6-3.el6.i686
        libc.so.6(GLIBC_2.4) is needed by libstdc++-4.4.6-3.el6.i686
        libgcc_s.so.1 is needed by libstdc++-4.4.6-3.el6.i686
        libgcc_s.so.1(GCC_3.0) is needed by libstdc++-4.4.6-3.el6.i686
        libgcc_s.so.1(GCC_3.3) is needed by libstdc++-4.4.6-3.el6.i686
        libgcc_s.so.1(GCC_4.2.0) is needed by libstdc++-4.4.6-3.el6.i686
        libgcc_s.so.1(GLIBC_2.0) is needed by libstdc++-4.4.6-3.el6.i686
        libm.so.6 is needed by libstdc++-4.4.6-3.el6.i686
        libm.so.6(GLIBC_2.0) is needed by libstdc++-4.4.6-3.el6.i686

依存関係が うぜえ。速攻で諦めて、素直に 64bit JDK を入れることにした。

JDK はサイズが大きいから自作インストールメディアに 32bit 版と 64 bit 版の両方を入れるのが嫌だったが、諦めた。現場 SE が自力で libstdc++ を入れられると期待するほど、私はお人好しじゃない。


2017-05-07 追記

今まで放ったらかしにしておいて申し訳ないが、このエントリは嘘です

Google 先生によると、ld-linux.so.2 は libstd++ パッケージに入っているらしい。

当時のことを思い出せるはずもないが、実際に JDK が動作するシステムで下記のように調べれば、

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)

# rpm -q --whatprovides /lib64/ld-linux-x86-64.so.2
glibc-2.12-1.192.el6.x86_64

ld-linux.so.2 は glibc パッケージに入っていることが分かる。glibc であれば、依存関係は(私の環境では) nss-softokn-freebl だけになる。それに OS メディアがあるなら、複雑な依存関係であったとしても、yum に解決してもらえる。

# yum -c /media/media.repo --setopt InstallMedia.baseurl=file:///media install glibc.i686
Setting up Install Process
InstallMedia                                             | 4.1 kB     00:00 ...
InstallMedia/primary_db                                  | 3.1 MB     00:03 ...
Resolving Dependencies
--> Running transaction check
---> Package glibc.i686 0:2.12-1.192.el6 will be installed
--> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.192.el6.i686
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.192.el6.i686
--> Running transaction check
---> Package nss-softokn-freebl.i686 0:3.14.3-23.el6_7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch      Version              Repository         Size
================================================================================
Installing:
 glibc                   i686      2.12-1.192.el6       InstallMedia      4.4 M
Installing for dependencies:
 nss-softokn-freebl      i686      3.14.3-23.el6_7      InstallMedia      157 k

Transaction Summary
================================================================================
Install       2 Package(s)

Total download size: 4.5 M
Installed size: 14 M
Is this ok [y/N]: y
Downloading Packages:
--------------------------------------------------------------------------------
Total                                           4.7 MB/s | 4.5 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : glibc-2.12-1.192.el6.i686                                    1/2
  Installing : nss-softokn-freebl-3.14.3-23.el6_7.i686                      2/2
  Verifying  : nss-softokn-freebl-3.14.3-23.el6_7.i686                      1/2
  Verifying  : glibc-2.12-1.192.el6.i686                                    2/2

Installed:
  glibc.i686 0:2.12-1.192.el6

Dependency Installed:
  nss-softokn-freebl.i686 0:3.14.3-23.el6_7

Complete!

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。