簡體   English   中英

在ubuntu上建立R(cran)+ rpy2 - >找不到libRblas.so

[英]Building R (cran) + rpy2 on ubuntu -> libRblas.so not found

我試圖在ubuntu(11.04,natty narwhal)上構建R(嘗試2.14.2和2.15)和rpy2(2.2.6,python 2.7.1),將其部署到自定義目錄(在下面名為/ home / me / lib / R),因為我沒有root訪問權限,但需要比服務器上提供的版本更新的版本。

構建等細節進一步向下,但即使運行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>

我確信我正在調用正確的rpy2模塊(我自定義構建的模塊),它是針對自定義構建的R版本構建的。 要做到這一點,我正在做以下事情:

  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 

    我也調整了我的pythonpath來查找/ home / me / lib / pythonlib中的模塊,所以問題不在那里。 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,但是有一件事看起來很奇怪,那就是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)
...

任何幫助將不勝感激!

對於遇到此問題的其他人,我能夠通過確保將R庫添加到bashrc中的庫路徑來解決它:

export LD_LIBRARY_PATH="R-install-location/lib65/R/lib:$LD_LIBRARY_PATH"

簡述:

  1. 為什么在Ubuntu上構建R? 只需按照http://cran.r-project.org/bin/linux/ubuntu上的自述文件從CRAN repo中獲取現有和當前二進制文件 - 這些是當前Debian軟件包的端口,可通過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為您執行這些步驟,但它會超出此問題的范圍......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM