Не удается установить ruby-debug, ошибка: rb_method_entry_t.call_id

Я пытаюсь установить ruby-debug. Я использую Mac OS 10.7.4, XCode версии 2308 и Ruby версии 1.9.3-p194.

Следуя инструкциям здесь: http://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-ruby-debug, я попытался запустить

sudo gem install ruby-debug

Я получил следующую ошибку:

Building native extensions.  This could take a while...
ERROR:  Error installing ruby-debug:
    ERROR: Failed to build gem native extension.

        /Users/andrew/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_method_entry_t.called_id in method.h... no
checking for rb_control_frame_t.method_id in method.h... no
*** 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
    --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=.
    --curdir
    --ruby=/Users/andrew/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
    --with-ruby-dir
    --without-ruby-dir
    --with-ruby-include
    --without-ruby-include=${ruby-dir}/include
    --with-ruby-lib
    --without-ruby-lib=${ruby-dir}/lib
extconf.rb:16:in `block in <main>': break from proc-closure (LocalJumpError)
from /Users/andrew/.rvm/gems/ruby-1.9.3-p194/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:18:in `call'
from /Users/andrew/.rvm/gems/ruby-1.9.3-p194/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:18:in `create_makefile_with_core'
from extconf.rb:32:in `<main>'


Gem files will remain installed in /Users/andrew/.rvm/gems/ruby-1.9.3-p194/gems/ruby-debug-base19-0.11.26 for inspection.
Results logged to /Users/andrew/.rvm/gems/ruby-1.9.3-p194/gems/ruby-debug-base19-0.11.26/ext/ruby_debug/gem_make.out

Итак, я попробовал следующую команду:

sudo gem install debugger

Что привело к:

Fetching: columnize-0.3.6.gem (100%)
Fetching: debugger-ruby_core_source-1.1.3.gem (100%)
Fetching: debugger-linecache-1.1.1.gem (100%)
Building native extensions. This could take a while...
Fetching: debugger-1.1.4.gem (100%)
Building native extensions. This could take a while...
Successfully installed columnize-0.3.6
Successfully installed debugger-ruby_core_source-1.1.3
Successfully installed debugger-linecache-1.1.1
Successfully installed debugger-1.1.4
4 gems installed
Installing ri documentation for columnize-0.3.6...
Installing ri documentation for debugger-ruby_core_source-1.1.3...
Installing ri documentation for debugger-linecache-1.1.1...
Couldn't find file to include 'VERSION' from lib/linecache19.rb
Installing ri documentation for debugger-1.1.4...
Installing RDoc documentation for columnize-0.3.6...
Installing RDoc documentation for debugger-ruby_core_source-1.1.3...
Installing RDoc documentation for debugger-linecache-1.1.1...
Couldn't find file to include 'VERSION' from lib/linecache19.rb
Installing RDoc documentation for debugger-1.1.4...

Итак, я исследовал проблему и, наконец, наткнулся на этот пост:

как Я устанавливаю ruby-debug в ruby ​​1.9.3/Rails 3.2.1

Все работало, пока я не попробовал команду:

gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$SANDBOX/packages/ruby-1.9.3-p194

Который только что воспроизвел первую ошибку выше. Так что я посмотрел в

rb_method_entry_t.called_id

И нашел этот пост: https://github.com/ruby/ruby/pull/56/#issuecomment-3463264

Я попробовал предложенные им шаги, за исключением перефразирования (что я не уверен, как сделать с rvm, и не хотел переключаться на rbenv просто для того, чтобы попробовать). Я загрузил все драгоценные камни, которые он рекомендовал, в папку и выполнил следующую команду:

gem install *.gem -- --with-ruby-include=$(echo ~/.rvm/rubies/1.9.3-p194/include/ruby-1.9.1/ruby-1.9.3-p194/) --no-rdoc --no-ri

Он установил linecache19-0.5.13 нормально, но захлебнулся ruby-debug-base19-0.11.26.gem, снова выдав первую ошибку.

Я также попытался удалить драгоценные камни отладчика, добавленные при запуске sudo gem install debugger, но это ничего не изменило.

Я в недоумении, что делать дальше.


person andrewhl    schedule 27.06.2012    source источник
comment
Как правило, вы не должны использовать sudo при использовании rvm, хотя я не думаю, что это связано с вашей проблемой.   -  person Andrew Grimm    schedule 28.06.2012


Ответы (3)


ruby-debug не работает для ruby ​​1.9, вместо этого попробуйте "pry". Может быть, и можно заставить работать ruby-debug, но я бы на это не рассчитывал.

Отладка в ruby ​​1.9

person Björn Nilsson    schedule 27.07.2012
comment
Да, я переключился на pry несколько недель назад, и он отлично работает. - person andrewhl; 22.09.2012

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

Для меня отладчик устанавливался как зависимость и работал

gem install debugger

до того, как пакет исправил это.

person Charles    schedule 26.06.2014

Просто столкнулся с этим с Ruby 2.0.0, установленным через RVM.

RVM просто установит бинарники, если они доступны, что быстрее, но отладчику тоже нужен исходный код

rvm reinstall 2.0.0 --disable-binary
person chris finne    schedule 27.10.2014