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 *

すると私の環境では動作します。

関連情報