web-dev-qa-db-ja.com

Rの起動時にメッセージが共有オブジェクトstats.soを読み込めない

Linux 64のソースコードからコンパイルされたR-3.0.2を使用していますが、Rの起動時に次のメッセージが表示されました。

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/hlfernandez/Eclipse/workspace/Bioscope/R/linux/x64/R-3.0.2/library/stats/libs/stats.so':
  libgfortran.so.3: cannot open the shared object file: No existe el archivo o el directorio
Durante la inicialización - Mensajes de aviso perdidos
package ‘stats’ in options("defaultPackages") was not found 

問題の原因について誰かが何か考えを持っていますか?ファイルまたはディレクトリが実際に存在するため、存在しないと表示されることはまれです。

私のオペレーティングシステムはKubuntu 13.10です。ライブラリが不足している可能性があります。

14
hlfernandez

RをコンパイルしてからRを使用するまでの間にシステム構成または実行環境が変更されました。特にlibgfortran.so.3ライブラリは検出できなくなりました。もしそうなら

$ R CMD ldd /path/to/R_HOME/library/stats/libs/stats.so

正常に検出されたリンクの依存関係のリストが表示されます

linux-vdso.so.1 =>  (0x00007fff213ff000)
libRlapack.so => /path/to/R_HOME/lib/libRlapack.so (0x00007fcafa557000)

そして失敗

    libgfortran.so.3 => ???

libgfortran.so.3が見つからないことを示します。あなたはそれを探しに行くことができます

locate libgfortran.so.3

そして、Rにアクセスできないようにするために何をしたかを理解します(おそらくldconfigがあなたの友達になるでしょう)。ただし、libgfortranは標準的な場所にある可能性が高いため、他の操作で削除して再インストールするか、libgfortranの新しい場所に対してRを再コンパイルする必要があります。

システムコマンドldconfig(Sudo権限が必要)または環境変数LD_LIBRARY_PATHを使用して、libgfortranの場所を指定します。しかし、実際にはこれらは必要ありません。libgfortanは、OSパッケージマネージャーを使用して、特別な追加構成を必要としない方法でインストールされているはずです。

14
Martin Morgan

編集:私は不足しているライブラリをディレクトリに置くことを発見しましたR/lib問題を解決しました。助けてくれてありがとう!

lddコマンドを実行すると、次のようになります。

bin/R CMD ldd ./library/stats/libs/stats.so
/home/hlfernandez/Eclipse/workspace/Bioscope/R/linux/x64/R-3.0.2

linux-vdso.so.1 =>  (0x00007fff47dfe000)

libRlapack.so => /home/hlfernandez/Eclipse/workspace/Bioscope/R/linux/x64/R-3.0.2/lib/libRlapack.so (0x00007fb595bb0000)

libRblas.so => /home/hlfernandez/Eclipse/workspace/Bioscope/R/linux/x64/R-3.0.2/lib/libRblas.so (0x00007fb595983000)

libgfortran.so.3 => not found

libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb595665000)

libR.so => /home/hlfernandez/Eclipse/workspace/Bioscope/R/linux/x64/R-3.0.2/lib/libR.so (0x00007fb5950c3000)

libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fb594eb4000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb594c97000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb5948ce000)

libgfortran.so.3 => not found

libreadline.so.6 => /lib/x86_64-linux-gnu/libreadline.so.6 (0x00007fb59468c000)

librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb594483000)

 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb59427f000)

/lib64/ld-linux-x86-64.so.2 (0x00007fb596205000)

 libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fb594056000)

あなたが言ったように、libgfortran.so.3に失敗があります。 manually libgfortran3.soファイルの場所を手動で示す方法はありますか?

5
hlfernandez