0

最近 AIX サーバーに git をインストールしましたが、git は正常に動作します。

しかし、Javaは現在機能していません。

java --version を実行すると、次の出力が得られます。

admin:stud:/webapps/WEB-INF/classes> java --version
exec(): 0509-036 Cannot load program java because of the following errors:
        0509-150   Dependent module /opt/freeware/lib/libiconv.a(shr4_64.o) could not be loaded.
        0509-152   Member shr4_64.o is not found in archive

どうすればこれを修正できますか。

以前は、以下の Java バージョンがインストールされていました。

admin:stud:/demo> java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pap64dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc64-64 j9vmap6423-20080315 (JIT enabled)
J9VM - 20080314_17962_BHdSMr
JIT  - 20080130_0718ifx2_r8
GC   - 200802_08)
JCL  - 20080314

これは、現在エラーが発生している開発マシンと同じ Java がインストールされている QA サーバーからの出力です。これを修正するにはどうすればよいですか

4

1 に答える 1

0

AIX でのコンパイルは困難です。AIX版だけでなくオープンソース版もあるので、ldにはlibiconvへの絶対パスを与えるのが一般的です。

1つの考えは、gitを脇に移動することです。私は通常、.real というディレクトリを作成し、git を最初の場所から .real サブディレクトリに移動します。つまり、get が /down/this/path/git の場合、それを /down/this/path/.real/git に移動します。

次に、LIBPATH を設定し、/down/this/path/.real/git に対して exec を実行するスクリプト /down/this/path/git を作成します。

#!/bin/ksh
export LIBPATH=/blah/blah:/usr/lib
exec /down/this/path/.real/git "$@"

Java は LIBPATH を設定し (または使用して)、以前に設定された LIBPATH を無視するため、これを複雑にします。

また... 2 つの libiconv を混ぜて一致させたくありません。オープン ソース バージョンが必要な場合は、AIX バージョンではなくそれを使用する必要があり、その逆も同様です。

幸運を

于 2013-01-30T22:57:12.477 に答える