установка RSRuby в Ubuntu 10.04 - PullRequest
3 голосов
/ 23 мая 2011

Я пытаюсь установить RSRuby в Ubuntu 10.04.Я даже не знаю, какие сообщения об ошибках сообщать как соответствующие;Я просто гуглю несколько часов, и ни одна из команд, которые я пытаюсь решить, не решает проблему.

Вот несколько примеров сообщений об ошибках:

$ sudo gem install rsruby -- --with-R-dir=/usr/lib/R
Building native extensions.  This could take a while...
ERROR:  Error installing rsruby:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb --with-R-dir=/usr/lib/R
checking for main() in -lR... yes
checking for R.h... no

ERROR: Cannot find the R header, aborting.


Gem files will remain installed in /var/lib/gems/1.8/gems/rsruby-0.5.1.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/rsruby-0.5.1.1/ext/gem_make.out

или выполнение с apt-get:

$ sudo gem install rsruby --include-dependencies -- --with-R-dir=/usr/lib/R/lib64/R --with-R-lib=/usr/lib/R/lib64/R/bin --with-R-include=/usr/lib/R/lib64/R/include
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
Building native extensions.  This could take a while...
ERROR:  Error installing rsruby:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb --with-R-dir=/usr/lib/R/lib64/R --with-R-lib=/usr/lib/R/lib64/R/bin --with-R-include=/usr/lib/R/lib64/R/include
checking for main() in -lR... no

ERROR: Cannot find the R library, aborting.


Gem files will remain installed in /var/lib/gems/1.8/gems/rsruby-0.5.1.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/rsruby-0.5.1.1/ext/gem_make.out

Я также получил последнюю версию RSRuby от GitHub и следовал инструкциям из руководства PDF 2006 года:

$ ruby setup.rb config -- --with-R-dir=/usr/lib/R
---> lib
---> lib/rsruby
<--- lib/rsruby
<--- lib
---> ext
/usr/bin/ruby1.8 /home/mars/R/rsruby/ext/extconf.rb --with-R-dir=/usr/lib/R
checking for main() in -lR... yes
checking for R.h... no

ERROR: Cannot find the R header, aborting.
*** /home/mars/R/rsruby/ext/extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=/home/mars/R/rsruby/ext
    --curdir
    --ruby=/usr/bin/ruby1.8
    --with-R-dir
    --with-R-include
    --without-R-include=${R-dir}/include
    --with-R-lib
    --without-R-lib=${R-dir}/lib
    --with-Rlib
    --without-Rlib
setup.rb:655:in `command': system("/usr/bin/ruby1.8" "/home/mars/R/rsruby/ext/extconf.rb" "--with-R-dir=/usr/lib/R") failed (RuntimeError)
    from setup.rb:660:in `ruby'
    from setup.rb:1238:in `extconf'
    from setup.rb:1230:in `config_dir_ext'
    from setup.rb:1532:in `__send__'
    from setup.rb:1532:in `traverse'
    from setup.rb:1549:in `dive_into'
    from setup.rb:1530:in `traverse'
    from setup.rb:1524:in `exec_task_traverse'
    from setup.rb:1519:in `each'
    from setup.rb:1519:in `exec_task_traverse'
    from setup.rb:1223:in `exec_config'
    from setup.rb:991:in `exec_config'
    from setup.rb:826:in `__send__'
    from setup.rb:826:in `invoke'
    from setup.rb:773:in `invoke'
    from setup.rb:1578

и irb:

irb(main):002:0> require 'RSRuby'
LoadError: no such file to load -- RSRuby
    from (irb):2:in `require'
    from (irb):2
    from :0
irb(main):003:0> rsruby
NameError: undefined local variable or method `rsruby' for main:Object
    from (irb):3
    from :0

Иногда мне кажется, что я могу получить что-то похожее на работу, но все равно не могу загрузить rsruby из командной строки irb.

$ sudo gem install rsruby --include-dependencies -- --with-R-dir=/usr/lib/R --with-R-lib=/usr/lib/R --with-R-include=/usr/share/R/include/
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
Building native extensions.  This could take a while...
Successfully installed rsruby-0.5.1.1
1 gem installed
Installing ri documentation for rsruby-0.5.1.1...
Installing RDoc documentation for rsruby-0.5.1.1...

затем

$ irb
irb(main):001:0> require 'rsruby'
LoadError: no such file to load -- rsruby
    from (irb):1:in `require'
    from (irb):1
    from :0

Ruby - это версия 1.8.7, я сделал sudo apt-get install ruby1.8-dev сегодня, но я не уверен, что это оставило вещи хуже, лучше или без изменений.Или, если это будет проще, то ruby1.9.

R работает.

Ответы [ 4 ]

6 голосов
/ 30 декабря 2011

Я не читаю по-японски, но у меня это сработало в Ubuntu 10.10, ruby ​​1.9: http://d.hatena.ne.jp/cuspos/20090520/1242825057

# gem install rsruby-0.5.1.1.gem -- --with-R-dir=/usr/lib/R --with-R-include=/usr/share/R/include 
Building native extensions.  This could take a while...
Successfully installed rsruby-0.5.1.1
1 gem installed
# export R_HOME=/usr/lib/R
# irb 
irb(main):001:0> require 'rsruby'
=> true
irb(main):002:0>
3 голосов
/ 23 мая 2011

Возможно, вы захотите проверить, установлены ли ваши переменные PATH или динамические ссылки так, чтобы Ruby и друзья «искали» в нужном месте. Похоже, что Ruby ожидает, что RSruby будет в /var/lib/gems/1.8/gems/rsruby-0.5.1.1/ или, возможно, /usr/lib/ruby/1.8/rubygems/ или, возможно, /var/lib/gems/1.8/gems/rsruby-0.5.1.1/lib/, .... в то время как в вашем отчете о настройке говорится, что он был установлен в /usr/bin/ruby1.8 /home/chris/R/. У меня нет опыта работы с Linux, но то, что у меня есть, говорит мне, что каждый дистрибутив отличается от того, где он ожидает найти установленные исполняемые файлы.

0 голосов
/ 30 декабря 2011

Ваши попытки с apt-get и gem install предполагают, что установщик не может найти заголовочные файлы R. Я бы начал с исправления этой проблемы, а не пытался установить другие способы установки RSruby. Следующий вопрос, почему он не может найти заголовки R, есть два варианта:

  • Заголовки установлены, но их невозможно найти. Используйте locate R.h, чтобы найти, где находится файл заголовка R, и убедитесь, что он находится в вашем $PATH.
  • Заголовки не установлены (что, я подозреваю, имеет место). Часто для установки заголовочных файлов требуется установить пакет разработки. Попробуйте и посмотрите, есть ли пакет R-dev или что-то с таким же именем, которое, помимо прочего, будет содержать заголовочный файл R. Установка R-dev может быть выполнена с помощью apt-get. Я думаю, что стандартная версия R в Ubuntu 10.04 не очень актуальна. CRAN имеет репозитории Ubuntu , где пакет dev называется r-base-dev. Добавление этого репо к вашему sources.list дает вам последнюю версию R от CRAN до apt-get.
0 голосов
/ 23 мая 2011

Вы успешно установили rsruby, как показано в выходном примере 5-го примера:

Successfully installed rsruby-0.5.1.1
1 gem installed

Библиотека не загружалась в irb, поскольку при использовании Ruby 1.8.7 сначала необходимо «потребовать rubygems»,Попробуйте это в irb:

require 'rubygems'
require 'rsruby'
...