2012-06-04 2 views
4

Я пытаюсь построить R (проверены 2.14.2 и 2.15) и rpy2 (2.2.6, python 2.7.1) на ubuntu (11.04, natty narwhal), чтобы развернуть его в пользовательский каталог (в следующем названии/home/me/lib/R), поскольку у меня нет доступа root, но вам нужна более новая версия, чем доступная на сервере.Здание R (cran) + rpy2 на ubuntu -> libRblas.so не найдено

Детали сборки и т.д. далее вниз, но даже при выполнении испытания 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. Я первый построить R-базу на убунту

    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. Я тогда строить rpy2 против этого R строить

    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, поэтому проблемы там нет. Сборки питона возвращает правильную конфигурацию (обратите внимание, что 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) 
... 

Любая помощь была бы принята с благодарностью!

ответ

4

Для других, работающих в этом вопросе, я был в состоянии решить эту проблему, убедившись в добавьте библиотеки R в мой путь к библиотеке в bashrc:

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

Кратко:

  1. Зачем строить R на Ubuntu? Просто возьмите существующие и текущие двоичные файлы из репозитория CRAN в соответствии с README по адресу http://cran.r-project.org/bin/linux/ubuntu - это порты текущих пакетов 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: packages). Вы даже можете использовать apt-get, чтобы сделать эти шаги для вас, но это становится немного выходит за рамки этого вопроса ...

+1

Моя проблема заключается в том, что я должен установить его в нестандартные каталоги, так как у меня нет root. Насколько я понимаю, двоичные файлы построены для стандартной структуры каталогов ubuntu? – flinz

+1

Я этого не делал, но я думаю, вы можете дать команду dpkg распаковать .deb в другой целевой каталог. Затем вы можете установить LD_LIBRARY_PATH и др. Для размещения. –

+0

hm, если это так, то это может сработать и будет действительным обходным путем. Я сделаю это выстрелом. Спасибо, я пока не могу подняться, но если бы мог. – flinz

Смежные вопросы