web-dev-qa-db-ja.com

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/client

  • echo LD_LIBRARY_PATHは(set by /etc/bash.bashrcを前に設定しますが、以下のように表示されます

LD_LIBRARY_PATH

.bash_profileに対してvimを実行すると、設定されたものの下に表示されます:

[[ -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を設定しているにもかかわらず、Sudo ldconfigを実行してからマシンを再起動しても、envに正しいパスを取得できません!!

私が探しているのは何ですか:

  • env変数を正しく設定します

  • sqlplusを実行します

同じ質問が存在します スーパーユーザー ですが、そこには解決策がありません。

15
user246631

コメントに見られるように、ライブラリは/usr/lib/Oracle/12.1/client/lib/にありますが、パスには/usr/lib/Oracle/12.1/client/binが含まれているだけです...ライブラリが見つかりましたか?

LD_LIBRARY_PATHは、/ usr/lib/Oracle/12.1/client/lib /ディレクトリー(.profileまたは.environmentまたは.bash_profileで、または/etc/bash.bashrcで(必要に応じて)で展開できます。ファイル)-sqlplusがLD_LIBRARY_PATHを処理するかどうかわかりません-試してみてください。

設定されているLD_LIBRARY_PATHを確認するには、次のように入力する必要があります。

echo $LD_LIBRARY_PATH

(値を読みたい場合は$に注意してください!)

お役に立てれば!

17
Wolfgang

/usr/lib/Oracle/12.1/client/lib/ディレクトリの下には、他のグループが読み取れないファイルがいくつかあります。

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

それは私の環境で動作します。

1
alice