Подтвердить что ты не робот

Ошибка при установке отладчика: не удалось создать собственное расширение gem с ruby-1.9.3-p362

При попытке запустить пакет для нового проекта, я сталкиваюсь со следующей ошибкой:

Installing debugger (1.2.2) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    C:/Ruby193/bin/ruby.exe 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
checking for rb_method_entry_t.called_id in method.h... no
checking for rb_control_frame_t.method_id in method.h... no
Makefile creation failed
**************************************************************************
No source for ruby-1.9.3-p362 provided with debugger-ruby_core_source gem.
**************************************************************************
*** 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=.
        --curdir
        --ruby=C:/Ruby193/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


Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.2.2 for inspection.
Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.2.2/ext/ruby_debug/gem_make.out
An error occured while installing debugger (1.2.2), and Bundler cannot continue.
Make sure that `gem install debugger -v '1.2.2'` succeeds before bundling.

Запуск gem install debugger -v '1.2.2' дает те же результаты.

Я проверил содержимое файла mkmf.log и gem_make.out, и они не имеют никакого смысла, но при необходимости я опубликую их.

Почему это не работает?

4b9b3361

Ответ 1

Я столкнулся с той же проблемой. Я пробовал:

bundle update debugger

У моего Gemfile было следующее:

gem 'debugger'

И это сработало, мне не пришлось менять Gemfile. Вывод пакета показывает что-то вроде этого

...

Installing debugger-ruby_core_source (1.1.6)

Installing debugger-linecache (1.1.2) with native extensions

Installing debugger (1.1.4) with native extensions

...

Ответ 2

Решение проблемы состояло в том, чтобы просто установить версию debugger-ruby_core_source gem - aa разветвленную версию debugger-ruby_core_source по eiel на github.

После долгих проб и ошибок (с моей стороны) я просто

gem install debugger-ruby_core_source -v '1.1.6'

которые заставляют включить заголовки p362. Затем, когда я запустил bundle, отладчик был успешно создан с родными расширениями, а пакет продолжал на нем веселье, и я тоже был.

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

Ответ 3

Возможно, лучше использовать обновление пакета, отлично работало здесь.

$bundle update debugger-ruby_core_source

Предположим использовать обновление для всех камней отладчика:

$bundle update debugger

Ответ 5

Попытавшись какое-то время, я, наконец, сдался и заменил debugger на byebug.

Для использования с pry:

gem 'pry', group: [:development, :test]
gem 'pry-byebug', group: [:development, :test]

Затем вы можете сбросить инструкцию binding.pry в любом месте, где хотите запустить отладчик.

Ответ 6

Просто наткнулся на это с помощью Ruby 2.0.0, установленного через RVM. Ни один из других решений не работал у меня.

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

rvm reinstall 2.0.0 --disable-binary

Ответ 7

если вы будете использовать rvm, убедитесь, что у вас есть соответствующая версия для соответствия debase-ruby_core_source ordebugger-ruby_core_source.

то есть. в debase-ruby_core_source для ruby ​​2.0.0 поддерживают только p195, p247, p353, p451, p481, p576. выше не поддерживается!

если ваша рубиновая версия не соответствует предоставленному источнику. вы не сможете это преодолеть. (причина "Не удается найти исходную ошибку!" )

------------debase-ruby_core_source 0.6.0 vm_Core support list ----------------
../usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p0/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p195/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p247/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p353/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p451/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p481/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p576/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.0-p0/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.1-p76/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.2-p95/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.3-p242/vm_core.h
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.2.0-preview1/vm_core.h

Ответ 8

который работал у меня:

$ rvm use 2.0

или сделать его по умолчанию:

$ rvm use --default 2.0