如何在Mac OSX Snow Leopard上安装EventMachine

3

我搜寻了相关的资源,但都是关于PC的。

每次我尝试安装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 eventmachine",但是没有成功。


我安装了XCode 3.2.6,遇到了同样的问题。 - jm3
4个回答

1

为了编译这样的扩展程序,您需要安装XCode 3.2或4。XCode软件包是可选安装项,可以在零售版操作系统的主安装DVD上或作为新系统的补充光盘提供。

您可以从应用商店下载适用于10.7或更高版本的XCode。


1
这个编译问题只出现在eventmachine中吗? - tadman
1
使用安装了 XCode 3.2.6 仍然无法解决这个问题。放弃并切换到 Rainbows,现在工作得很好。 - jm3
1
我也遇到了这个问题。OSX 10.7.3,XCode 4.3.1,rvm 1.10.3,ruby 1.9.3p125。 - commadelimited
即使安装了开发者工具,XCode 4.6.1 对此问题没有任何作用。 - Grant Birchmeier
只是针对EventMachine还是所有带扩展的内容?Nokogiri也需要测试。 - tadman

0

我曾经遇到过同样的问题。打开mkmf.log文件并运行命令,将问题缩小到了gmp库。gmp库位于不同的目录中,而LD_LIBRARY_PATH未设置。

我将LD_LIBRARY_PATH设置为gmp所在的位置,然后它就成功安装了。


0

0

你的问题可能是因为你没有安装 Xcode 4.2/4.3 的开发者工具。

对于 Xcode 4.2.x 和 4.3.x,你需要单独安装命令行工具:

  1. 启动 Xcode,然后从菜单栏中的 "Xcode" 菜单中打开 "Preferences" 菜单。
  2. 选择 "Downloads" 选项卡(图标)。
  3. 点击 "Command Line Tools" 的 "Install" 按钮。

如果安装正确,运行 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。我建议您使用RVM或rbenv将版本降级至1.9.2,以便在需要使用EventMachine的项目中使用。


我安装了开发者工具 (Apple LLVM版本4.2 (clang-425.0.28) (基于LLVM 3.2svn)), 但它并没有改变错误。 - Grant Birchmeier
我也是,我有这个问题,但它还是无法正常工作。 - sergserg
链接 http://isitruby19.com/eventmachine 不是英文,所以它对大多数 SO 用户没有帮助。我们需要一个可以理解的更新链接。 - the Tin Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接