Как определить, включена ли в моей установке R в OS X опция «--enable-R-shlib»? - PullRequest
5 голосов
/ 25 декабря 2010

Я установил R на моей машине OS X с помощью метода .pkg.Я пытаюсь заставить работать Ruby гем под названием RSRuby, и, хотя он установлен правильно, он выдает ошибку, когда я пытаюсь вызвать гем.

Fatal error: R home directory is not defined

В документации RSRuby говорится, что R должен быть установлен с опцией --enable-R-shlib.Но в документации R говорится, что установка Mac OS X делает это по умолчанию.Как вы можете убедиться, что эта опция включена в установке, если вы не знаете, что она была явно вызвана во время установки?

Я пытаюсь понять, почему RSRuby не может найти домашний каталог R, и это выглядит какскорее всего проблема.

В соответствии с документацией RSRuby, я скопировал это в свой домашний каталог

[~]$ R_HOME=/Library/Frameworks/R.framework/Resource

И из консоли R это вывод:

> R.home()
[1] "/Library/Frameworks/R.framework/Resources"

И во время установки gemЯ запустил эту команду:

gem install rsruby -- --with-R-dir=$R_HOME=/Library/Frameworks/R.framework/Resources

Кроме того, это содержимое моей папки /Library/Frameworks/R.framework/Libraries:

[Libraries]$ ls
i386                    libRblas.dylib.dSYM     libgfortran.2.dylib
libR.dylib              libRblas.vecLib.dylib   libreadline.5.2.dylib
libR.dylib.dSYM         libRlapack.dylib        libreadline.dylib
libRblas.0.dylib        libRlapack.dylib.dSYM   ppc
libRblas.dylib          libgcc_s.1.dylib        x86_64

1 Ответ

7 голосов
/ 25 декабря 2010

Вкратце:

  1. Вы можете проверить --enable-R-shlib, взглянув на двоичный файл результирующего построенного R;в Linux я могу сделать ldd /usr/lib/R/bin/exec/R, который показывает, что libR.so --- разделяемая библиотека R - загружается этим двоичным файлом.Это то, что другие проекты, встраивающие R (RInside, littler, модули R-in-Apache, ...), используют и, вероятно, то, что RSRuby будет использовать.Домашний каталог R не определен 'Я бы начал с определения переменной окружения R_HOME.

Редактировать: Относительно вопроса 1, в OS X ваши динамические библиотеки заканчиваютсяв .dylib.Таким образом, список каталогов, который вы показываете, ясно демонстрирует, что R был собран с --enable-R-shlib как опция времени компиляции.Что касается Вопроса 2, то самый первый запрос Google, полученный мной для rsruby os x, четко описывает, как установить R_HOME в OS X (как я уже говорил), см. https://github.com/alexgutteridge/rsruby.

...