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
。
下面是我的PATH
和libsqlplus.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 客户端。根据您的平台,使用 sqlplus 或 sqlplus64。就我而言,我使用了:
$ 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 包含路径,也没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
Roslaunch 无法打开共享对象文件:没有这样的文件或目录