Ответ 1
Лучше использовать последнюю версию отладчика, bc issue с вашей версией Ruby.
Я пытаюсь сделать bundle
в большом проекте на Mavericks, и некоторые драгоценные камни сломаны или что-то не так с моей средой, несмотря на это новая установка rbenv.
$ gem install debugger -v '1.5.0'
Building native extensions. This could take a while...
ERROR: Error installing debugger:
ERROR: Failed to build gem native extension.
/Users/samat/.rbenv/versions/1.9.3-p448/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-1.9.3-p448 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.
...
Не знаю, какие параметры конфигурации мне нужны
В mkmf я вижу такие вещи, как
"gcc -I/Users/samat/.rbenv/versions/1.9.3-p448/include/ruby-1.9.1/x86_64-darwin13.0.0 -I/Users/samat/.rbenv/versions/1.9.3-p448/include/ruby-1.9.1/ruby/backward -I/Users/samat/.rbenv/versions/1.9.3-p448/include/ruby-1.9.1 -I. -I/Users/samat/.rbenv/versions/1.9.3-p448/include/ruby-1.9.1/ruby-1.9.3-p448 -I'/Users/samat/.rbenv/versions/1.9.3-p448/include' -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I'/Users/samat/.rbenv/versions/1.9.3-p448/include' -O3 -Wno-error=shorten-64-to-32 -pipe -c conftest.c"
conftest.c:3:10: fatal error: 'method.h' file not found
#include <method.h>
^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <method.h>
...
Я использую rbenv,
$ rbenv version
1.9.3-p448 (set by /Users/samat/Documents/bm-git/.ruby-version)
Лучше использовать последнюю версию отладчика, bc issue с вашей версией Ruby.
На странице отладчика говорится, что если источник ruby не может быть найден, он попытается установить debugger-ruby_core_source, что на самом деле то, что не удается для меня, Я использую rbenv, поэтому я в соответствии с инструкциями gem отладчика указал на источник rbenv.
gem install debugger -- --with-ruby-include=~/.rbenv/versions/1.9.3-p484/include
Есть много проблем с камнями Ruby и Mavericks. Я нашел, что лучше всего использовать компилятор apple-gcc42 из homebrew
brew tap homebrew/versions
brew install apple-gcc42
Затем заставьте это семейство компиляторов использоваться при построении драгоценных камней. Я помещал символические ссылки в свою папку bin в своем домашнем каталоге
cd $HOME/bin
ln -s /usr/local/bin/c++-4.2 c++
ln -s /usr/local/bin/g++-4.2 g++
ln -s /usr/local/bin/gcc-4.2 cc
ln -s /usr/local/bin/gcc-4.2 gcc
Вам понадобится папка локального bin на вашем пути.
export PATH=$HOME/bin:$PATH
Тогда вам должно быть хорошо идти.
Возможно, это поможет вам gem install debugger-linecache -v '1.1.2' -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p286/
Иногда эта проблема связана с отсутствующим пакетом. В большинстве случаев эти файлы (например, method.h
) принадлежат пакету с именем libXXX-dev
.
Нам сложно понять, что пакет содержит файл. Недавно я столкнулся с полезностью для решения этой досадной проблемы (для тех, кто работает с менеджером пакетов apt-get
). Инструмент apt-file
, и вы можете использовать его следующим образом:
sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search 'method.h'
Результат может быть:
...
libcxxtools-dev: /usr/include/cxxtools/constmethod.h
libcxxtools-dev: /usr/include/cxxtools/method.h
libcxxtools-dev: /usr/include/cxxtools/unit/testmethod.h
libgcj12-dev: /usr/include/c++/4.6/gcj/method.h
libgcj13-dev: /usr/include/c++/4.7/gcj/method.h
...
В частном случае debugger
gem недостающим пакетом является `libcxxtools-dev``
Я на Debian 3.2.54-2 x86_64 GNU/Linux
Для меня это была проблема разрешения.
Я смог решить эту проблему с помощью
sudo gem install debugger
Если это не поможет вам, возможно, придется участвовать в зависимой кроличьей дыре.