8

Unix ボックスに ROracle パッケージをインストールしようとしています。パッケージが正しくインストールされます。しかし、ライブラリ(ROracle)はエラーでうまく動作しません

library(ROracle)
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
unable to load shared object '/u01/group1/home/oracle/R/x86_64-redhat-linux-gnu-library/3.1/ROracle/libs/ROracle.so':
libclntsh.so.11.1: cannot open shared object file: No such file or directory
Error: package or namespace load failed for ‘ROracle’

パッケージはコマンド ラインから正常にインストールされますが、R スタジオでは機能しません。私はフォーラムで多くのスレッドを調べましたが、多くのスレッドが LD_LIBRARY_PATH をエクスポートしてリセットすることを提案しました。事実、すべての R システム変数をコマンド ラインから R Studio にコピーしました。しかし、それでもうまくいきません。

私が気付いたことの 1 つは、R スタジオを再起動するたびに R システム変数が変更されることです。Rスタジオがパス値を正しく取得していないことが問題になる可能性があります.

4

2 に答える 2

13

この問題は、$LD_LIBRARY_PATH 環境変数がシステム全体で設定されていないために発生しているようです。他の環境変数とは異なり、$LD_LIBRARY_PATH には特別な処理が必要です( Ubuntu ヘルプ ページを参照し、 ld.so.conf.dを検索してください) 。

コメント 15に従って $LD_LIBRARY_PATH を設定することで、これを解決できました。

echo "/usr/lib/oracle/11.2/client64/lib" | sudo tee /etc/ld.so.conf.d/oracle.conf

echo ステートメントを、Oracle Instant Client ライブラリが保存されている場所に変更します。(私のものは、実行することで見つけることができますecho $OCI_LIB

次に、キャッシュを更新します。

sudo ldconfig -v

次に、RStudio を開いて実行するlibrary("ROracle")と、動作するはずです。

于 2016-04-24T11:30:55.613 に答える
3

私はまったく同じ問題を抱えていましたが、非常に親切で親切なオラクルの担当者との会議のおかげで解決しました。

次の行を/etc/rstudio/rserver.confファイルに含める必要があります (デフォルトでは空です)。

rsession-ld-library-path=/usr/lib64/R/lib:/u01/app/oracle/product/12.1.0.2/dbhome_1/lib

つまり、R & Oracle ホーム ディレクトリ:

$ echo $R_HOME
/usr/lib64/R
$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/dbhome_1

構成ファイルを変更した後、RStudio サーバーを再起動する必要があります。

これはRStudioサーバーでのみ確認したため、RStudioデスクトップにも必要かどうかはわかりません...

詳しくはこちらをご覧ください(Oracle R Enterpriseのことを指していますが、vanilla Rにも当てはまります)。

于 2015-10-30T10:05:44.643 に答える