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(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
测试您的 Oracle 客户端。根据您的平台,使用 sqlplus 或 sqlplus64。就我而言,我使用了:
$ 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" 权限的重要性。
对于除 Owner/Group 之外的任何 "Other" UNIX 用户能够 运行 sqlplus 和访问 ORACLE 数据库,read/execute 权限是这 4 个目录需要 (rx) :
$ORACLE_HOME/bin , $ORACLE_HOME/lib, $ORACLE_HOME/oracore, $ORACLE_HOME/sqlplus
环境。正确设置:
一个。 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"
我通过 Oracle website 在 Ubuntu 下载了 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
测试您的 Oracle 客户端。根据您的平台,使用 sqlplus 或 sqlplus64。就我而言,我使用了:
$ 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" 权限的重要性。
对于除 Owner/Group 之外的任何 "Other" UNIX 用户能够 运行 sqlplus 和访问 ORACLE 数据库,read/execute 权限是这 4 个目录需要 (rx) :
$ORACLE_HOME/bin , $ORACLE_HOME/lib, $ORACLE_HOME/oracore, $ORACLE_HOME/sqlplus
环境。正确设置:
一个。 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"