Как установить EventMachine на Mac OSX Snow Leopard

Я искал эту проблему и продолжал находить ресурсы, связанные с ПК.

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

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

/usr/local/bin/ruby extconf.rb
checking for rb_trap_immediate in
ruby.h,rubysig.h... *** 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=/usr/local/bin/ruby
/usr/local/lib/ruby/1.9.1/mkmf.rb:368:in
`try_do': The complier failed to
generate an executable file.
(RuntimeError) You have to install
development tools first.  from
/usr/local/lib/ruby/1.9.1/mkmf.rb:446:in
`try_compile'     from
/usr/local/lib/ruby/1.9.1/mkmf.rb:568:in
`try_var'     from
/usr/local/lib/ruby/1.9.1/mkmf.rb:816:in
`block in have_var'   from
/usr/local/lib/ruby/1.9.1/mkmf.rb:693:in
`block in checking_for'   from
/usr/local/lib/ruby/1.9.1/mkmf.rb:280:in
`block (2 levels) in postpone'    from
/usr/local/lib/ruby/1.9.1/mkmf.rb:254:in
`open'    from
/usr/local/lib/ruby/1.9.1/mkmf.rb:280:in
`block in postpone'   from
/usr/local/lib/ruby/1.9.1/mkmf.rb:254:in
`open'    from
/usr/local/lib/ruby/1.9.1/mkmf.rb:276:in
`postpone'    from
/usr/local/lib/ruby/1.9.1/mkmf.rb:692:in
`checking_for'    from
/usr/local/lib/ruby/1.9.1/mkmf.rb:815:in
`have_var'    from extconf.rb:16:in
`<main>'


Gem files will remain installed in
/usr/local/lib/ruby/gems/1.9.1/gems/eventmachine-0.12.10
for inspection. Results logged to
/usr/local/lib/ruby/gems/1.9.1/gems/eventmachine-0.12.10/ext/gem_make.out

Кажется, он ломается при создании расширений C. Я пробовал различные решения, такие как "Mac OS X Leopard устанавливает машину событий ruby ​​gem", но безуспешно.


person colourandcode    schedule 07.06.2011    source источник
comment
У меня такая же проблема с установленным XCode 3.2.6.   -  person jm3    schedule 10.10.2011


Ответы (4)


Вам нужно будет установить XCode 3.2 или 4 для компиляции подобных расширений. Пакет XCode является необязательным для установки и поставляется либо на основном установочном DVD-диске для розничного пакета ОС, либо в качестве дополнительного диска с новой системой.

Вы можете загрузить его из App Store для версии 10.7 или более поздней.

person tadman    schedule 07.06.2011
comment
Эта проблема компиляции изолирована от eventmachine? - person tadman; 08.06.2011
comment
С установленным XCode 3.2.6 это все еще бомба. Сдался и переключился на Rainbows, теперь все работает отлично. - person jm3; 10.10.2011
comment
У меня тоже есть эта проблема. OSX 10.7.3, XCode 4.3.1, rvm 1.10.3, рубин 1.9.3p125. - person commadelimited; 16.03.2012
comment
XCode 4.6.1, даже с установленными инструментами разработчика, никак не повлиял на это. - person Grant Birchmeier; 16.04.2013
comment
Только для EventMachine или для всего с расширениями? Нокогири — еще одна вещь, которую нужно проверить. - person tadman; 16.04.2013

Ваша проблема может заключаться в том, что вы не установили инструменты разработчика для Xcode 4.2/4.3.

С Xcode 4.2.x и 4.3.x вам необходимо установить инструменты командной строки отдельно:

  1. Запуск Xcode, затем открытие меню «Настройки» из меню «Xcode» в строке меню.
  2. Выберите вкладку «Загрузки» (значок).
  3. Нажмите кнопку «Установить» для «Инструменты командной строки».

Если установка выполнена правильно, запуск cc --version должен вывести:

% cc --version

    Apple clang version 3.1 (tags/Apple/clang-318.0.54) (based on LLVM 3.1svn)
    Target: x86_64-apple-darwin11.3.0
    Thread model: posix

Или, если вы используете Ruby 1.9.3, существуют известные проблемы с EventMachine. См. http://isitruby19.com/eventmachine. Я предлагаю вам перейти на версию 1.9.2 для проектов, которым требуется EventMachine с использованием RVM или rbenv.

person Zac    schedule 07.04.2012
comment
Я установил инструменты разработчика (Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)), но это никак не изменило ошибку. - person Grant Birchmeier; 16.04.2013
comment
То же самое, у меня есть эта штука, и она все еще не работает. - person sergserg; 16.04.2015
comment
Ссылка http://isitruby19.com/eventmachine не на английском языке, поэтому она не поможет подавляющему большинству пользователей SO. Нам нужна обновленная ссылка, которая понятна. - person the Tin Man; 03.01.2020

Решение здесь сработало для меня. Мне просто нужно было установить инструменты командной строки с https://developer.apple.com/downloads/index.action

См. "получение драгоценного камня eventmachine для компиляции на OSX Lion 10.8.2 с xcode 4.5.1" для получения дополнительной информации.

person asahi    schedule 23.06.2013

У меня такая же проблема. Открытие файла mkmf.log и запуск команды сузили проблему до библиотеки gmp. Библиотека gmp находилась в другом каталоге, и LD_LIBRARY_PATH не был установлен.

Я установил LD_LIBRARY_PATH в место, где находился gmp, а затем он установился правильно.

person user906825    schedule 21.08.2014