oracle - 将 Oracle 与 Perl 结合使用

标签 oracle perl

我一整天都在尝试安装 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/

相关文章:

javascript - 在 perl 脚本中包含单独的 javascript 文件

arrays - Perl Data::Dumper 数组内的哈希值?

oracle - 哪些用户可以在Oracle 18.4上执行SHOW PDBS?

oracle - oracle中如何获取最后执行的SQL语句并绑定(bind)变量值

java - 如何从 HTML Web 应用程序查询远程 Oracle 数据库?

perl - Google Maps API 在 perl 中返回状态 'REQUEST_DENIED'

javascript - 如何在 JavaScript 中的字符串中间进行锚定正则表达式匹配

linux - 如何自动化 HTML 到 PDF 的转换?

sql - 甲骨文 SQL : How to INSERT a SELECT statement with a GROUP BY clause on a table with IDENTITY column?

sql-server - SSIS,使用来自 SQL Server 的 ID 查询 Oracle 表?