2009年11月27日金曜日

Ubuntu 64bit で、32bit アプリが動かない

IBMのWebsphere MQ v6.0 client を入れようとして気づいたのですが、
IBM製のjvmが起動しないで、以下のようなエラーになる。ファイルは存在しているが、32-bitの古いものだった。


$ ./lap/IBMJava2-142/jre/bin/java
bash: ./lap/IBMJava2-142/jre/bin/java: not found [No such file or directory]

$ ls -l ./lap/IBMJava2-142/jre/bin/java
-rwxr-xr-x 1 korabo korabo 43012 Apr 26 2008 ./lap/IBMJava2-142/jre/bin/java

$ file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

$ file ./lap/IBMJava2-142/jre/bin/java
./lap/IBMJava2-142/jre/bin/java: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped


以下のキーで検索したら、
ubuntu 64bit ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped

このページに答えがありました。
Installing 32-bit third party apps on 64-bit Ubuntu

そこで、 LSB (Linux Standard Bas ) のパッケージをインストールします。
説明では、lsb-coreを入れればいいとあったのですが、間違えてlsb全体を入れてしまいました。(Ubuntu9.10では、lsb-base,lsb-core,lsb-releaseなどいくつもlsb関連のパッケージがあります)

さきほどよりは進んだのですが、、、

$ ./lap/IBMJava2-142/jre/bin/java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
Classic VM (build 1.4.2, J2RE 1.4.2 IBM build cxia32142ifx-20041203 (142SR1+80507) (JIT enabled: jitc))
libgcc_s.so.1 must be installed for pthread_cancel to work
libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted


これは、「ia32-libs」パッケージをいれればいいようなので、インストールしてみると、、、

$ ./lap/IBMJava2-142/jre/bin/java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
Classic VM (build 1.4.2, J2RE 1.4.2 IBM build cxia32142ifx-20041203 (142SR1+80507) (JIT enabled: jitc))

どうやら動き出したようです。ふーーーー。

0 件のコメント: