libsqlplus.so:无法打开共享对象文件:即使 PATH 包含路径,也没有这样的文件或目录

Posted

技术标签:

【中文标题】libsqlplus.so:无法打开共享对象文件:即使 PATH 包含路径,也没有这样的文件或目录【英文标题】:libsqlplus.so: connot open shared object file : No such file or directory even though PATH contain the path 【发布时间】:2015-08-13 02:02:02 【问题描述】:

我在 Ubuntu 中通过Oracle website 下载了 Instant Oracle Client 版本 11.2.0.4.0(basic, sqlplus, devel .rpm 文件)。 在使用alien.rpm 转换为.deb 后,我安装了它,首先是basic,然后是sqlplus,最后是devel

然后我尝试运行 sqlplus。

但它说的是sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

即使我的PATH 包含PATH

下面是我的PATHlibsqlplus.so的位置。

A@ubuntu:~$ sudo find / -name libsqlplus.so
/usr/lib/oracle/11.2/client64/lib/libsqlplus.so

A@ubuntu:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/sangmin/eclipse:/usr/lib/oracle/11.2/client64/lib:/usr/lib/oracle/11.2/client64

【问题讨论】:

【参考方案1】:

测试您的 Oracle 客户端。根据您的平台,使用 sqlplussqlplus64。就我而言,我使用了:

$ sqlplus64 username/password@//dbhost:1521/SID

如果您收到下一条消息,那么您需要指示 sqlplus 使用正确的库:

sqlplus64:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有这样的文件或目录。

为此,首先要找到 Oracle 库的位置。路径应该类似于/usr/lib/oracle/<version>/client(64)/lib/。就我而言(Ubuntu 14.04 LTS,Intel 64 位),它是/usr/lib/oracle/11.2/client64/lib/

现在,将此路径添加到系统库列表中。创建和编辑一个新文件:

$ sudo nano /etc/ld.so.conf.d/oracle.conf

在路径内添加:

/usr/lib/oracle/11.2/client64/lib/

现在运行动态链接器运行时绑定实用程序:

$ sudo ldconfig

如果 sqlplus 产生缺少的 libaio.so.1 文件,则运行:

$ sudo apt-get install libaio1

有关尝试运行 sqlplus 时的其他错误,请参阅 Ubuntu 帮助页面。

【讨论】:

Oracle 在oracle.com/technetwork/topics/linuxx86-64soft-092277.html 基础上的安装说明并没有暗示需要编辑系统库列表。谢谢你。 /etc/ld.so.conf.d/ 中没有oracle.conf【参考方案2】:

可能值得检查权限问题: sqlplus: error while loading shared libraries

权限: 我想强调“sqlplus”权限的重要性。

    对于除所有者/组之外的任何“其他”UNIX 用户能够运行 sqlplus 并访问 ORACLE 数据库,这 4 个目录需要读取/执行权限 (rx):

    $ORACLE_HOME/bin、$ORACLE_HOME/lib、$ORACLE_HOME/oracore、$ORACLE_HOME/sqlplus

    环境。正确设置:

    A. ORACLE_HOME (例如:ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/

    B. LD_LIBRARY_PATH (例如:ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib

    C. ORACLE_SID

    D.路径

     export PATH="$ORACLE_HOME/bin:$PATH"
    

【讨论】:

包含对您的建议的解释而不只是一个链接会很有帮助。

以上是关于libsqlplus.so:无法打开共享对象文件:即使 PATH 包含路径,也没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

GDB“无法打开共享对象文件”问题

Roslaunch 无法打开共享对象文件:没有这样的文件或目录

加载共享库时出错,无法打开共享对象文件:没有这样的文件或目录(hiredis)

无法打开已知的共享对象文件

运行 kivy 示例时无法打开共享对象文件

加载共享库时出错:libgmock.so:无法打开共享对象文件:没有这样的文件或目录