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

libsqlplus.so: connot open shared object file : No such file or directory even though PATH contain the path

我通过 Oracle website 在 Ubuntu 下载了 Instant Oracle Client 版本 11.2.0.4.0(basicsqlplusdevel .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

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

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

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

sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory.

为此,首先找到 Oracle 库的位置。路径应该类似于 /usr/lib/oracle/<version>/client(64)/lib/。在我的例子中(Ubuntu 14.04 LTS,英特尔 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 帮助页面。

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

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

  1. 对于除 Owner/Group 之外的任何 "Other" UNIX 用户能够 运行 sqlplus 和访问 ORACLE 数据库,read/execute 权限是这 4 个目录需要 (rx) :

    $ORACLE_HOME/bin , $ORACLE_HOME/lib, $ORACLE_HOME/oracore, $ORACLE_HOME/sqlplus

  2. 环境。正确设置:

    一个。 ORACLE_HOME (示例:ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/

    乙。 LD_LIBRARY_PATH (示例:ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib

    C。 ORACLE_SID

    D.路径

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