运行 sqlplus 时加载共享库时出错
Error while loading shared libraries while running sqlplus
我正在尝试在我的 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。有人可以帮我解决这个问题吗?
看起来变量设置不正确,或者设置变量的文件夹中没有oracle客户端,或者它没有执行权限。
请在终端中执行 运行 sqlplus:
echo $ORACLE_HOME
echo $LD_LIBRARY_PATH
如果它们没有显示正确的值,则意味着您没有正确设置变量(要么在 运行ing sqlplus 之前导出它们,要么为每个终端会话设置它们)。
如果它们显示正确的值,请转到文件夹检查是否有 Oracle 客户端文件。如果是,请检查那里文件的执行权限 (ls -la
)。如果文件没有授权可以打开并执行,请添加它 (chmod
)。如果这三个都正常,客户端应该可以工作。
这是我在我的机器上安装 Oracle 即时客户端时使用的过程的简化版本:
1 - 获得外星人 sudo apt-get install alien
2 - 下载 Oracle Instant Client(下载 basic、devel 和 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
中的所有用户设置此项。 discussion of setting environment variables 针对不同类型的 shell 的一个或多个用户不在这个问题的范围之内。
祝你好运!
或者从 link http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
从 oracle 下载并安装 sql 开发人员
我正在尝试在我的 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。有人可以帮我解决这个问题吗?
看起来变量设置不正确,或者设置变量的文件夹中没有oracle客户端,或者它没有执行权限。
请在终端中执行 运行 sqlplus:
echo $ORACLE_HOME
echo $LD_LIBRARY_PATH
如果它们没有显示正确的值,则意味着您没有正确设置变量(要么在 运行ing sqlplus 之前导出它们,要么为每个终端会话设置它们)。
如果它们显示正确的值,请转到文件夹检查是否有 Oracle 客户端文件。如果是,请检查那里文件的执行权限 (ls -la
)。如果文件没有授权可以打开并执行,请添加它 (chmod
)。如果这三个都正常,客户端应该可以工作。
这是我在我的机器上安装 Oracle 即时客户端时使用的过程的简化版本:
1 - 获得外星人 sudo apt-get install alien
2 - 下载 Oracle Instant Client(下载 basic、devel 和 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
中的所有用户设置此项。 discussion of setting environment variables 针对不同类型的 shell 的一个或多个用户不在这个问题的范围之内。
祝你好运!
或者从 link http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
从 oracle 下载并安装 sql 开发人员