1

さて、私は CGI モジュール、DBI モジュール、および DBD::Oracle ドライバーの組み合わせを、CPANM を使用して、Oracle11g データベースを備えた 64 ビット Solaris 11 マシンにインストールしようとしていました。

Perlbrew を使用してその最新バージョンの Perl をインストールし、CPANM を更新してから、次のことを行いました...

cpanm -v -f -i CGI
cpanm -v -f -i DBI

これらのモジュールは両方とも正常にインストールされました。DBI を正常にインストールしようとすると、小さなテスト エラー (t/zvxnp_85gofer.t) が発生しましたが、強制インストールは機能しているように見えました。

それで、必要な最後の部分をインストールしようとしました:

cpanm -v -f -i DBD::Oracle

そして、これはインストールの終わりに向かって出てきたエラーでした...

Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
LD_RUN_PATH="/opt/oracle/rdbms/lib" gcc  -G -L/usr/gnu/lib -fstack-protector Oracle.o  dbdimp.o  oci8.o  -o blib/arch/auto/DBD/Oracle/Oracle.so     \
   -L/opt/oracle/rdbms/lib/ -lclntsh -lkstat -lnsl -lsocket -lresolv -lgen -ldl -lsched -lrt -R/opt/oracle/rdbms/lib -laio -lposix4 -lkstat -lm -lpthread   \

ld: fatal: file /opt/oracle/rdbms/lib//libclntsh.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to blib/arch/auto/DBD/Oracle/Oracle.so
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `blib/arch/auto/DBD/Oracle/Oracle.so'
FAIL
! Installing DBD::Oracle failed. See /home/oracle/.cpanm/build.log for details.

wrong ELF class: ELFCLASS64存在する64ビットバイナリ間の不一致と関係があり、このドライバーをインストールするには32ビットバイナリが必要であると推測していますか? 一部の調査では、インストールを続行するには lib32 ディレクトリを見つける必要があることが示されていますが、見つからないようです。

やった:

echo $ORACLE_HOME---> /opt/oracle/rdbms
ls $ORACLE_HOME

次のディレクトリが返されました...

apex              emcli             mgw               rdbms
assistants        has               network           relnotes
bin               hs                nls               root.sh
ccr               ide               oc4j              scheduler
cdata             install           odbc              slax
cfgtoollogs       install.platform  olap              sqldeveloper
clone             instantclient     ons               sqlj
config            inventory         OPatch            sqlplus
crs               j2ee              opmn              srvm
csmig             javavm            oracore           sysman
css               jdbc              oraInst.loc       timingframework
ctx               jdev              ord               ucp
cv                jdk               oui               uix
dbs               jlib              owb               utl
dc_ocm            ldap              owm               wwg
deinstall         lib64             perl              xdk
demo              log               plsql
diagnostics       md                precomp
dv                mesg              racg

したがって、lib64 は表示されますが、lib または lib32 は表示されません。以前にこの問題を抱えていた人、解決策を見つけた人、またはここから続行する方法を知っている人はいますか?

4

2 に答える 2

2

私も同じ問題を抱えていました。./Configure -es -Dprefix=$HOME/usr/local -Dcc=gcc -Duse64bitall -Dusethreadsperlのインストールを行うことで修正しました

于 2012-09-19T06:28:20.870 に答える
2

oracle.comで1271236.1および883702.1を参照してください。11iクライアントインストール用の32ビットライブラリを入手する方法を説明します。

于 2012-06-08T18:05:59.143 に答える