sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有此文件或目录

sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有此文件或目录
  • echo $PATH给出以下结果:

/home/dagda/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-7-oracle/bin:/usr/lib/jvm/java-7-oracle/db/bin:/usr/lib/jvm/java-7-oracle/jre/bin:/usr/lib/oracle/12.1/client/bin

  • echo $ORACLE_HOME获取:

/usr/lib/oracle/12.1/客户端

  • echo LD_LIBRARY_PATH给出(设置通过/etc/bash.bashrc

在 /usr/local/lib 中

执行以下操作vim显示.bash_profile以下设置:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" #
Load RVM into a shell session *as a function*

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    export LD_LIBRARY_PATH

PATH=$PATH:/usr/local/bin
    export PATH

尽管在上述文件中进行了设置,但运行并重新启动我的机器后ld_library_path,我仍然没有得到正确的路径!!envsudo ldconfig

我正在寻找什么帮助:

  • 正确设置环境变量

  • 运行 sqlplus

我成为 Linux 用户的时间很短...所以不太清楚解决方法...如果您能指导我,我将不胜感激!!!

答案1

$LD_LIBRARY_PATH未包含 Oracle 库的路径。您的 bash 配置文件显示:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

该行应更改为:

LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:/usr/local/lib"

或者,您可以将此行添加到设置$ORACLE_HOME变量的任何位置(使用导出)。确保$ORACLE_HOME先设置。

从您的$ORACLE_HOME值可以看出 Oracle 库位于:

/usr/lib/oracle/12.1/client/lib

因此,这需要放在您的 中$LD_LIBRARY_PATH。在某些情况下,例如 instantclient,您可能需要添加到$ORACLE_HOME$LD_LIBRARY_PATH还要确保库文件本身是可读的。

您可以使用ldd来验证库路径是否正确:

ldd $ORACLE_HOME/bin/sqlplus

相关内容