使用instantclient 11.2在64位Ubuntu上安装Oracle

使用instantclient 11.2在64位Ubuntu上安装Oracle,oracle,perl,Oracle,Perl,所以我有,我认为是64位ubuntu的oracle instantclient的干净安装 我已经安装了4个模块:basic、sqlplus、jdbc和sdk。 我在my/etc/profile.d/oracle.sh中添加了tnsnames.ora和以下项目 export DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2 export TNS_ADMIN=/opt/oracle/instantclient_11_2 export ORACLE_HO

所以我有,我认为是64位ubuntu的oracle instantclient的干净安装

我已经安装了4个模块:basic、sqlplus、jdbc和sdk。 我在my/etc/profile.d/oracle.sh中添加了tnsnames.ora和以下项目

export DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
export TNS_ADMIN=/opt/oracle/instantclient_11_2
export ORACLE_HOME=/opt/oracle/instantclient_11_2
export ORACLE_ENV=/opt/oracle/instantclient_11_2

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/instantclient_11_2
export LD_LIBRARY_PATH

PATH=$PATH:/opt/oracle/instantclient_11_2
export PATH
当我尝试sqlplus时,我可以毫无问题地实现连接

我已经下载了DBD::Oracle1.74,当我尝试sudo-E perl Makefile.PL时,我遇到了一个最令人困惑的错误

Using Oracle in /opt/oracle/instantclient_11_2
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
它显然有我的即时客户端和libsqlplus.so所在的目录,但它找不到文件

建议

我应该补充一点,sudo-esqlplus给出了一个命令notfound错误,即使

sudo-E echo$PATH在PATH语句末尾显示:/opt/oracle/instantclient_11_2。
我只能作为普通用户运行sqlplus。

请确保下载了包含sqlplus库的正确软件包

从Oracle即时客户端网站:
“SQL*Plus:用于在即时客户端上运行SQL*Plus的附加库和可执行文件”

我不知道这个问题描述对其他人有多大的可重用性,但简单的回答是:使用sudo安装DBD::Oracle,无论您使用的是sudo-i还是sudo-E都肯定会有问题,除非您完全控制sudoers配置


我的解决方案是运行cpan并以root用户身份安装

如果您阅读上面的内容,我非常确定我已经获得了所有正确的即时客户端位。我下载了、basic、sdk、sqlplus和jdbc并安装了它们。因此,请检查libsqlplus.So的“/opt/oracle/instantclient_11_2”内部。它在那里吗?