无法在Ruby 2.1.2下安装ruby-debug-ide gem

7
我想在Ruby 2.1.2下安装ruby-debug-ide宝石。这是为了在Rubymine中进行调试。
它适用于Ruby 1.9.3,但不适用于此版本。 以下是错误信息:
1.3.5/lib/debugger/ruby_core_source/ruby-2.1.2-p95/***internal.h:209: error: expected ‘;’, ‘,’ or ‘)’ before ‘x’***

以下是输出结果。

我希望能以某种方式理解或调试这个问题。 顺便说一句,快速修复也将是很好的。

Fetching: ruby-debug-ide-0.4.22.gem (100%)
    Building native extensions.  This could take a while...
    ERROR:  Error installing ruby-debug-ide:
        ERROR: Failed to build gem native extension.

        /Users/ohad/.rvm/rubies/ruby-2.1.2/bin/ruby mkrf_conf.rb
    Installing base gem
    Building native extensions.  This could take a while...
    Building native extensions.  This could take a while...
    ERROR: Failed to build gem native extension.

        /Users/ohad/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
    checking for vm_core.h... no
    checking for vm_core.h... no
    checking for vm_core.h... yes
    creating Makefile

    make "DESTDIR=" clean

    make "DESTDIR="
    compiling breakpoint.c
    compiling context.c
    compiling debase_internals.c
    In file included from /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/gems/debugger-ruby_core_source-1.3.5/lib/debugger/ruby_core_source/ruby-2.1.2-p95/method.h:14,
                     from /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/gems/debugger-ruby_core_source-1.3.5/lib/debugger/ruby_core_source/ruby-2.1.2-p95/vm_core.h:24,
                     from ./hacks.h:1,
                     from debase_internals.c:2:
    /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/gems/debugger-ruby_core_source-1.3.5/lib/debugger/ruby_core_source/ruby-2.1.2-p95/***internal.h:209: error: expected ‘;’, ‘,’ or ‘)’ before ‘x’***
    make: *** [debase_internals.o] Error 1

    make failed, exit code 2

    Gem files will remain installed in /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/gems/debase-0.0.9 for inspection.
    Results logged to /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/extensions/x86_64-darwin-13/2.1.0-static/debase-0.0.9/gem_make.out
    /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:89:in `run'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:51:in `block in make'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:43:in `each'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:43:in `make'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/ext_conf_builder.rb:47:in `block in build'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tempfile.rb:324:in `open'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/ext_conf_builder.rb:17:in `build'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:161:in `block (2 levels) in build_extension'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:160:in `chdir'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:160:in `block in build_extension'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:159:in `synchronize'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:159:in `build_extension'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:198:in `block in build_extensions'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in `each'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in `build_extensions'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/installer.rb:677:in `build_extensions'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/installer.rb:232:in `install'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/request_set.rb:142:in `block in install'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/request_set.rb:126:in `each'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/request_set.rb:126:in `install'
      /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/dependency_installer.rb:389:in `install'
      mkrf_conf.rb:34:in `rescue in <main>'
      mkrf_conf.rb:27:in `<main>'

    rake failed, exit code 1

    Gem files will remain installed in /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/gems/ruby-debug-ide-0.4.22 for inspection.
    Results logged to /Users/ohad/.rvm/gems/ruby-2.1.2@v1_v2/extensions/x86_64-darwin-13/2.1.0-static/ruby-debug-ide-0.4.22/gem_make.out

此外,我尝试通过以下命令使用Ruby进行安装 rvm reinstall ruby-2.1.2 --disable-binary 但是出现了以下错误:

`dyld: Library not loaded: @@HOMEBREW_CELLAR@@/openssl/1.0.1i/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/opt/openssl/bin/openssl
  Reason: image not found
Failed reading certificates path for '/usr/local/opt/openssl/bin/openssl' with return code: ().
RVM autolibs is now configured with mode '2' => 'check and stop if missing',
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]`
or visit https://rvm,, for more information.
Requirements installation failed with status: 133.`

我在Debian Jessie/Testing上使用Ruby 2.1.1安装它时没有任何问题。从“Users”中的大写“U”来看,我猜你在使用OS X。请注意,OS X中的某些gems安装起来很棘手(例如Nokogiri)。你正在运行哪个OS X版本?如果你正在使用RVM,请尝试使用Ruby 2.1.1,并使用rvm gemset use --create debug_ide创建一个干净的gemset,然后再次尝试。稍后我会在我的Mac上查看是否也失败了。 - Alf
它可以在OS X Mavericks、Ruby 2.1.2p95和一个干净的gemset中顺利安装,如果出现问题,那肯定是你的环境有问题。 - Alf
Homebrew。但不适用于安装gems。 - WebQube
我想我明白了你的问题所在。我在下面发布了一个答案。 - Alf
我根据你的输出(缺少OpenSSL库)更新了我的先前答案。阅读附加信息以查看是否有效。 - Alf
显示剩余4条评论
3个回答

3
问题似乎在于gem debugger-ruby_core_source找不到vm_core.h头文件,该头文件是Ruby源代码的一部分。要仅安装源代码(假设您已经安装了二进制文件),请执行以下操作:
$ rvm fetch ruby-2.1.2

您也可以从源代码重新安装(速度会慢一些,但这是一个好习惯):
$ rvm reinstall ruby-2.1.2 --disable-binary

根据您提供的错误信息更新

根据您的信息,您需要安装OpenSSL:

$ brew install openssl

简而言之:

  1. 你无法安装debugger-ruby_core_source,因为它需要与你的Ruby版本相对应的Ruby源代码。
  2. 你无法通过RVM安装Ruby源代码,因为缺少Open SSL库。

要解决这个问题,请输入rvm autolibs homebrew,这样RVM会在需要时安装缺失的包(你可能需要使用root权限并在被要求时输入密码)。从现在开始,这还可以让RVM处理依赖性问题,你不需要再次输入该命令。


嗨@alf,不幸的是没有起作用。我已经在问题中添加了输出。 - WebQube

1
我曾经遇到过类似的问题,安装 ruby-debug-ide 之前手动安装 debugger-ruby_core_source gem 可以解决。

0
今天我遇到了这个问题,运行brew unlink openssl && brew link openssl --force后解决了它。
希望能帮到你。

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