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

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

/home/mayank/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好了,但是现在显示如下

LD_LIBRARY_PATH

执行以下操作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

存在相同问题超级用户,但没有给出解决方案。

答案1

正如评论中所见,您的库位于 /usr/lib/oracle/12.1/client/lib/,但您的路径仅包含 /usr/lib/oracle/12.1/client/bin...您知道为什么找不到该库吗?

您可以使用 /usr/lib/oracle/12.1/client/lib/ 目录(在您的 .profile 或 .environment 或 .bash_profile 中或(如果您希望所有用户都使用)在 /etc/bash.bashrc 文件中)扩展您的 LD_LIBRARY_PATH - 我不知道 sqlplus 是否会处理 LD_LIBRARY_PATH - 只需尝试一下。

要查看 LD_LIBRARY_PATH 的设置,您必须输入:

echo $LD_LIBRARY_PATH

(如果您想读取该值,请注意 $!)

希望这可以帮助!

答案2

该目录下有一些文件/usr/lib/oracle/12.1/client/lib/其他组无法读取。

cd /usr/lib/oracle/12.1/client/lib/
chmod +r *

然后它在我的环境中运行。

相关内容