首页 文章

尝试使用CPANM安装DBD :: Oracle时出错

提问于
浏览
1

好的,所以我试图在带有Oracle11g数据库的64位Solaris 11机器上使用CPANM安装CGI模块,DBI模块和DBD :: Oracle驱动程序的组合 .

我使用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 . 有没有人曾经遇到过这个问题,找到了解决方案,或者知道如何从这里继续?

2 回答

  • 2

    我遇到过同样的问题 . 通过对perl安装执行 ./Configure -es -Dprefix=$HOME/usr/local -Dcc=gcc -Duse64bitall -Dusethreads 来修复它

  • 2

    请在oracle.com上查看1271236.1和883702.1 . 它将解释如何为11i客户端安装获取32位库 .

相关问题