Ответ 1
Попробуйте установить debugger
без указания версии и снова запустите bundle install
.
У меня была такая же ошибка, и она просто сработала, не спрашивайте меня, почему:
$ gem install debugger
$ bundle install
Я видел очень похожие проблемы в других вопросах SO (например, Нет источника для ruby-1.9.2-p321, снабженного камнем отладчика-ruby_core_source), а также через поиск Google, но ни один из них не помог до сих пор.
Я использую OSX Mavericks (первый пользователь Mac) и rbenv (впервые использовал это). Я git клонировал проект Rails, который я ранее выполнял на другом ноутбуке (Ubuntu и rvm).
rbenv version
: 2.0.0-p451 (который я установил вручную)
Когда я пытаюсь bundle install
, я получаю следующее:
...
Using debugger-ruby_core_source (1.3.1)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/macuser/.rbenv/versions/2.0.0-p451/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
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-2.0.0-p451 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=/Users/macuser/.rbenv/versions/2.0.0-p451/bin/ruby
--with-ruby-dir
--without-ruby-dir
--with-ruby-include=${ruby-dir}/include
--with-ruby-lib
--without-ruby-lib=${ruby-dir}/
Gem files will remain installed in /Users/macuser/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/debugger-1.6.5 for inspection.
Results logged to /Users/macuser/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/debugger-1.6.5/ext/ruby_debug/gem_make.out
An error occurred while installing debugger (1.6.5), and Bundler cannot continue.
Make sure that `gem install debugger -v '1.6.5'` succeeds before bundling.
Итак, я попробовал запустить gem install debugger -v '1.6.5'
, что в основном вызывает ту же ошибку, что и выше.
От поиска, вот некоторые вещи, которые я безуспешно пытался:
и, возможно, некоторые другие тоже... но ничего не работает.
Обновление: переключилось на локальную среду rbenv на ruby 2.1.0, и это сработало. Не исправлена основная проблема, но это прекрасно, я думаю,
Попробуйте установить debugger
без указания версии и снова запустите bundle install
.
У меня была такая же ошибка, и она просто сработала, не спрашивайте меня, почему:
$ gem install debugger
$ bundle install
Я столкнулся с тем, что, по моему мнению, была той же проблемой при попытке установить dubugger с ruby 2.0.0-p598.
Драгоценный камень debugger-ruby_core_source является зависимостью отладчика и предоставляет файлы заголовков для определенных версий рубина, которые, как представляется, используются при установке отладчика. Посмотрите debugger-ruby_core_source/lib/debugger/ruby_core_source/
, чтобы узнать, какие версии поддерживаются - файлы заголовков не предоставляются для всех рубиновых версий. В моем случае они не были предоставлены для версии 2.0.0-p598.
Глядя на README для debugger-ruby_core_source, есть задача rake для добавления необходимых файлов для рубиновых версий.
Из командной строки в каталоге gem я запустил
$ rake add_source VERSION=2.0.0-p598
Когда я впервые запустил эту задачу, я получил сообщение об ошибке и должен был установить драгоценный камень archive-tar-minitar, прежде чем снова запустить задачу рейка.
После того, как задача rake добавила файлы заголовков для моей версии, я смог успешно установить и запустить отладчик.
Я публикую здесь, потому что абсолютно ничего не работало. Единственное решение, которое устранило проблему для меня:
Несмотря на то, что мы устанавливаем отладчик, ошибка заключается в установке требования, debugger-ruby_core_source.
Если вы посмотрите на ошибку, где именно возникает проблема.
No source for ruby-2.0.0-p451 provided with debugger-ruby_core_source gem.
На самом деле довольно легко исправить эту ошибку. Просто запустите команду ниже, установите зависимости и повторите попытку:
gem install debugger-ruby_core_source
Кредит для этого решения: FIXED gem install debugger -v 1.6.2 'Нет источника для ruby
Проблема заключается в том, что ваш Gemfile.lock
содержит старый драгоценный камень debugger-ruby_core_source
. Этот драгоценный камень должен знать о вашей конкретной рубиновой версии, чтобы правильно получить файлы заголовков, и если версия, установленная в вашем пакете, слишком старая, она не будет работать.
Правильное решение - обновить ваш Gemfile.lock
с помощью новой версии, запустив
bundle update debugger-ruby_core_source
Ответы @delba и @superuseroi в основном сводятся к использованию gem
для установки драгоценного камня debugger-ruby_core_source
непосредственно из источника - который вытащит последнюю версию, но исправление вашего пакета будет проще и будет также сохраняться в вашем источнике (по крайней мере, до следующего обновления вашего Ruby).
Также см. эту статью о общих проблемах с камнем Ruby
Отладчику нужен источник Ruby для работы.
Так что просто переустановите Ruby с исходным кодом (not bin).
Например:
rvm reinstall 2.0.0 --disable-binary
похоже, проблема с совместимостью рубиновой версии и отладчиком жемчужины рельсов. Выполнение команды ниже работало для меня:
rvm ruby-2.0.0-p481
Если он не работает, тип
rvm list
получит список рубиновой версии. Выберите более раннюю версию ruby, которая может работать.
Спасибо всем.
rvm list
rvm ruby-2.0.0-p451
Пробная установка пакета, возникла ошибка в том, что вы не можете установить ее в не-голый репозиторий, предлагая удалить каталог кеша; которые я сделал:
rm -rf /usr/local/rvm/gems/ruby-2.0.0-p451/cache/
попытался
rvm gemsest use [my_gemset_name]
и получили те же ошибки.
закончил с помощью:
rvm gemset use default
и работа с пакетом.
Чтобы решить эту проблему, вам нужно переустановить исходный код рельсов. Эта команда устранит проблему:
$ rvm reinstall 2.0.0 --disable-binary
Тогда команда $ bundle install
будет работать.
Ссылка: https://pfonseca.com/error-to-install-debugger-s-gem
Используйте beebug gem вместо исправления моей проблемы.