运行sqlplus时加载共享库时出错

时间:2017-11-09 13:12:20

标签: oracle ubuntu sqlplus oracledb

我正在尝试在我的ubuntu机器上安装和运行sqlplus。我收到上述错误

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

当我跑

sudo sqlplus64 <user>/<pass>@//<ip>:<port>/db

尽管遵循了oracle安装客户端文档https://help.ubuntu.com/community/Oracle%20Instant%20Client

中提到的步骤

我已正确设置ORACLE_HOME和LD_LIBRARY_PATH 我的strace sqlplus / nolog输出显示以下错误

write(2, "SP2-0667: Message file sp1<lang>"..., 47SP2-0667: Message file sp1<lang>.msb not found
) = 47
write(2, "SP2-0750: You may need to set OR"..., 76SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
) = 76

如果需要,我也可以附上完整的strace。有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

以下是我在计算机上安装Oracle即时客户端时使用的流程的缩短版本:

1 - 获取外星人sudo apt-get install alien

2 - 下载Oracle Instant Client(下载基本版,开发版和sqlplus版)

3 - 使用Alien安装.rpm软件包

sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

sudo alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

sudo alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

4 - 导航到sqlplus $ cd /usr/lib/oracle/12.X/client64/bin/

的安装目录

5 - 运行sqlplus $ ./sqlplus并查看是否收到有关libaio1的错误

6 - 您可能需要安装libaio1$ sudo apt-get install libaio1

7 - 如果您仍然遇到模块错误,请尝试运行ldd $ ldd sqlplus。安装你需要的东西。

8 - 设置以下环境变量

export ORACLE_HOME=/usr/lib/oracle/12.1/client64/

export PATH=$PATH:/usr/lib/oracle/12.1/client64/bin/

export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/

您可以为/etc/bash.bashrc中的所有用户设置此项。针对不同类型的shell的一个或多个用户的discussion of setting environment variables超出了这个问题的范围。

祝你好运!

答案 1 :(得分:3)

它看起来没有正确设置变量,或者文件夹中没有oracle客户端,其中设置了变量或者没有权限可以执行。

请在终端中执行sqlplus:

echo $ORACLE_HOME
echo $LD_LIBRARY_PATH

如果它们没有显示正确的值,则表示您没有正确设置变量(在运行sqlplus之前导出它们或为每个终端会话设置它们)。
如果它们显示正确的值,请转到文件夹检查是否有Oracle客户端文件。如果是,请检查那里的文件的执行权限(ls -la)。如果文件没有授权打开并执行pleaswe添加它(chmod)。如果这三个都没问题,客户应该可以工作。

答案 2 :(得分:-1)