Компилирование старых версий R (2.11 или более старых) в Ubuntu 13.10 (или новее)?

Я пытаюсь скомпилировать старую версию R (в частности, 2.11.1). «Почему?», Спросите вы. Ну, у меня есть программа, которую я пытаюсь запустить (она была написана не мной, но я надеюсь использовать ее в своем исследовании), которая была написана на «старом» R, и автор программы специально упомянул этот R-2.11. 1 или старше должны быть использованы .

  • Я запустил ./configure без явных ошибок (весь вывод слишком длинный, чтобы публиковать здесь, но меня предупредили, что я не могу сделать PDF, DVI или HTML-версии справки страниц, о которых я не слишком беспокоюсь).

  • Затем, когда я передаю команду make, меня встречает следующая ошибка (после длинного потока успешных команд):

    Warning in solve.default(rgb):
    unable to load shared library '/home/sbowerma/Programs/R-2.11.1/modules//lapack.so':
    /home/sbowerma/Programs/R-2.11.1/lib/libRlapack.so: undefined symbol: _gfortran_compare_string
    Error in solve.default(rgb) : lapack routines cannot be loaded
    Error: unable to load R code in package 'grDevices'
    Execution halted
    

Однако Я подтвердил, что библиотека lapack.so фактически находится в том положении, в котором она должна быть.

1
задан 10 June 2014 в 00:59

1 ответ

R-2.11.1 процесс сборки, кажется, компилирует свои собственные версии библиотек BLAS и LAPACK (как R-2.11.1/lib/libRblas.so и R-2.11.1/lib/libRlapack.so) по умолчанию - даже если версии системы этих библиотек доступны. По причинам я не смог определить, они локально созданные освобождают, кажется, правильно не связываются gfortran библиотека времени выполнения (по крайней мере, не на 64-разрядной Ubuntu 13.10).

Используя ./configure --help Вы будете видеть

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-blas             use system BLAS library (if available), or specify
                          it [no]
  --with-lapack           use system LAPACK library (if available), or specify
                          it [no]

Таким образом, обходное решение состоит из проверки, что у Вас есть соответствующий BLAS/LAPACK (или ATLAS) пакеты разработки, установленные в системе и затем добавлении --with-blas и --with-lapack опции к Вашей конфигурации, например.

./configure --with-blas --with-lapack --prefix=/usr/local

Настраивать отчет должен теперь указать на что-то как

External libraries:      readline,BLAS(generic),LAPACK(generic)

и после этого необходимо смочь завершиться make.

0
ответ дан 10 June 2014 в 00:59

Другие вопросы по тегам:

Похожие вопросы: