我正在尝试在我的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。有人可以帮我解决这个问题吗?
答案 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)
或者从链接http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
从oracle下载并安装sql developer