4

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モジュール(カスタムビルドのもの)を呼び出していると確信しています。これを行うために、次のことを行っています。

  1. 私は最初に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
    
  2. 次に、この 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)
...

どんな助けでも大歓迎です!

4

2 に答える 2

2

簡単に言うと:

  1. R を Ubuntu でビルドする理由 http://cran.r-project.org/bin/linux/ubuntuの README に従って、CRAN リポジトリから既存および現在のバイナリを取得するだけです。通常の Ubuntu パブリッシング ラグ。

  2. Ubuntu で新しい (小さい) パッケージが必要なときはいつでも、Debian パッケージ ソースを取得して、Ubuntu で再構築します。パッケージのビルド方法については、ネット上に十分な HOWTO があるはずです。最低限、a) トリプレット .orig.tar.gz、.diff.gz、および .dsc を下に移動し、使用dpkg-sourcepackage -x *.dscして展開し、次に b) ディレクトリに移動して実行しますsudo debian/rules binary(すべての Build-Depends: パッケージがインストールされている場合)。これらの手順を実行するために使用することもできapt-getますが、この質問の範囲を少し超えています...

于 2012-06-04T16:01:36.080 に答える