ubuntu(11.04、natty narwhal)でR(2.14.2と2.15を試した)とrpy2(2.2.6、python 2.7.1)をビルドして、カスタムディレクトリ(以下では/ home /と呼ばれる)に展開しようとしていますme/lib/R)、ルート アクセス権がないため、サーバーで利用可能なバージョンよりも新しいバージョンが必要です。
ビルドなどの詳細は後述しますが、rpy2 のテストを実行しても、常に次のエラーが発生します。
/home/me/lib/pythonlib/lib/python/rpy2/rinterface/__init__.py in <module>()
---> 87 from rpy2.rinterface._rinterface import *
ImportError: libRblas.so: cannot open shared object file: No such file or directory
WARNING: Failure executing file: <experiments/arrangement/test_smacof_arrange.py>
カスタムビルドされたRバージョンに対してビルドされた正しいrpy2モジュール(カスタムビルドのもの)を呼び出していると確信しています。これを行うために、次のことを行っています。
私は最初にubuntuでR-baseを構築します
wget http://cran.r-project.org/bin/linux/ubuntu/natty/r-base_2.14.2.orig.tar.gz # untar and go to directory # enable-R-shblib flag is needed for rpy2 linking, enable-BLAS-shlib was included # because I hoped to solve the problem, which doesnt change anything however ./configure --enable-R-shlib --enable-BLAS-shlib --prefix=/home/me/lib/R make make install
次に、この R ビルドに対して rpy2 をビルドします
wget http://pypi.python.org/packages/source/r/rpy2/rpy2-2.2.6.tar.gz # untar and go to directory # build rpy2, by providing the r-home-lib and r-home flags, and deploy to custom dir python setup.py build --r-home /home/me/lib/R --r-home-lib /home/me/lib/R/lib64/R/lib install --home /home/me/lib/pythonlib
また、/home/me/lib/pythonlib でモジュールを見つけるように pythonpath を調整したので、問題はありません。Python ビルドは正しい構成を返します (Rblas がここに表示されることに注意してください!)
Configuration for R as a library: include_dirs: ('/home/me/lib/R/lib64/R/include',) libraries: ('R', 'Rblas', 'Rlapack') library_dirs: ('/home/me/lib/R/lib64/R/lib',) extra_link_args: ()
エラーを追跡しようとしましたが、終わりがありません。/home/me/lib/R/lib64/R/lib には libRblas.so が含まれていますが、奇妙な点が 1 つあります。それは、libRblas.so が libR.so から正しくリンクされていないことです。これによりエラーが発生し、修正方法もわかりません。
>> ldd -d libR.so
linux-vdso.so.1 => (0x00007fffcec58000)
libRblas.so => not found
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fe63d21d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe63cf97000)
...
どんな助けでも大歓迎です!