我一整天都在尝试安装 perl-DBD-Oracle-1.19-1.el5.x86_64.rpm 软件包。它一直给我以下错误:
perl-DBD-Oracle-1.19-1.el5.x86_64 from /perl-DBD-Oracle-1.19-1.el5.x86_64 has depsolving problems
--> Missing Dependency: libnnz10.so()(64bit) is needed by package perl-DBD-Oracle-1.19- 1.el5.x86_64 (/perl-DBD-Oracle-1.19-1.el5.x86_64)
perl-DBD-Oracle-1.19-1.el5.x86_64 from /perl-DBD-Oracle-1.19-1.el5.x86_64 has depsolving problems
--> Missing Dependency: libocci.so.10.1()(64bit) is needed by package perl-DBD-Oracle-1.19-1.el5.x86_64 (/perl-DBD-Oracle-1.19-1.el5.x86_64)
perl-DBD-Oracle-1.19-1.el5.x86_64 from /perl-DBD-Oracle-1.19-1.el5.x86_64 has depsolving problems
--> Missing Dependency: libocijdbc10.so()(64bit) is needed by package perl-DBD-Oracle-1.19-1.el5.x86_64 (/perl-DBD-Oracle-1.19-1.el5.x86_64)
perl-DBD-Oracle-1.19-1.el5.x86_64 from /perl-DBD-Oracle-1.19-1.el5.x86_64 has depsolving problems
--> Missing Dependency: libclntsh.so.10.1()(64bit) is needed by package perl-DBD-Oracle-1.19-1.el5.x86_64 (/perl-DBD-Oracle-1.19-1.el5.x86_64)
perl-DBD-Oracle-1.19-1.el5.x86_64 from /perl-DBD-Oracle-1.19-1.el5.x86_64 has depsolving problems
--> Missing Dependency: libociei.so()(64bit) is needed by package perl-DBD-Oracle-1.19-1.el5.x86_64 (/perl-DBD-Oracle-1.19-1.el5.x86_64)
据我所知,我已经安装了所有正确的库,即
oracle-instantclient-basic-10.2.0.5-1.x86_64.rpm
oracle-instantclient-devel-10.2.0.5-1.x86_64.rpm
oracle-instantclient-sqlplus-10.2.0.5-1.x86_64.rpm
perl-DBI-1.52-2.el5.x86_64.rpm
并且它提示丢失的所有文件都已安装,例如它声称丢失的第一个依赖项是 libnnz10.so 但它安装在/usr/lib/oracle/10.2.0.5/client64/lib/libnnz10.so 中。另外,如果我要求 yum 解决此依赖性,那么它就会解决,例如
> yum provides */libnnz10.so
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
Excluding Packages in global exclude list
Finished
oracle-instantclient-basic-10.2.0.5-1.x86_64 : Instant Client for Oracle Database 10g
Repo : installed
Matched from:
Filename : /usr/lib/oracle/10.2.0.5/client64/lib/libnnz10.so
我已经设置了变量
ORACLE_HOME="/usr/lib/oracle/10.2.0.5/client64"
LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.5/client64/lib"
我还将上面的 lib 目录添加到了路径中。
那么为什么 yum 说它可以解决它,但又说它不能?
最佳答案
DBD::Oracle是众所周知的最难安装的 CPAN 模块之一。在过去的十年中,我安装了许多 CPAN 模块,每次我都必须安装 DBD::Oracle我猛吸一口气,为数小时的痛苦做好准备。
我最近安装了DBD::Oracle在 64 位 Ubuntu 12.04.2 LTS 桌面上。让我看看我是否还记得我做了什么。
从我下载的 Oracle 站点:
- instantclient-basic-linux.x64-11.2.0.3.0.zip
- instantclient-sdk-linux.x64-11.2.0.3.0.zip
- instantclient-sqlplus-linux.x64-11.2.0.3.0.zip
我创建了一个目录 /usr/local/oracle
,更改为该目录,并解压缩了所有三个文件。
然后我跑了:
LD_LIBRARY_PATH=/usr/local/oracle/instantclient_11_2 \
ORACLE_HOME=/usr/local/oracle/instantclient_11_2 \
cpan DBD::Oracle
我可能遗漏了一些东西。祝你好运。
关于oracle - 将 Oracle 与 Perl 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17419229/