【问题标题】:gem install debugger -v '1.5.0' failsgem install debugger -v '1.5.0' 失败
【发布时间】:2013-11-08 12:22:49
【问题描述】:

我正在尝试在 Mavericks 的大型项目中执行 bundle,尽管这是全新安装的 rbenv,但一些 gem 已损坏或我的环境出现问题。

$ 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)

【问题讨论】:

  • 您的机器似乎缺少一些 c/c++ 库。你有安装 libc 和 libc-devel 等吗?

标签: ruby-on-rails ruby macos bundler rbenv


【解决方案1】:

您最好使用最新版本的调试器,bc issue 已解决您的 Ruby 版本。

【讨论】:

    【解决方案2】:

    这可能会帮助你gem install debugger-linecache -v '1.1.2' -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p286/

    【讨论】:

      【解决方案3】:

      Ruby gems 和 Mavericks 存在很多问题。我发现最好的办法是使用来自homebrew的apple-gcc42编译器

      brew tap homebrew/versions
      brew install apple-gcc42
      

      然后在构建 gem 时强制使用该编译器系列。我将符号链接放在我的主目录的 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
      

      那你应该可以走了。

      【讨论】:

      • 在尝试在 Mavericks 上安装 libv8 和 therubyracer 数小时后,this 成为了解决方案(除了 $HOME 没有设置,但这很简单)。非常感谢。
      • 很高兴它帮助了詹姆斯!
      【解决方案4】:

      debugger page 中说,如果找不到 ruby​​ 源,它将尝试安装 debugger-ruby_core_source,这对我来说实际上是失败的。我用的是rbenv,所以我按照调试器gem的说明,把它指向了rbenv源码。

      gem install debugger -- --with-ruby-include=~/.rbenv/versions/1.9.3-p484/include

      【讨论】:

      • 接受的答案对我不起作用,但这确实为我节省了一天的时间,并且确实是一个更有用的解决方案。值得注意的是,包含的路径会有所不同,并且 brew 用户可能会在以下位置找到它:/usr/local/var/rbenv/... 谢谢!
      【解决方案5】:

      有时此问题与缺少软件包有关。大多数情况下,这些文件(例如 method.h)属于名为 libXXX-dev 的包。

      我们很难知道包中包含什么文件。我最近遇到了一个实用程序来处理这个烦人的问题(对于那些使用apt-get 包管理器的人)。该工具是apt-file,您可以按如下方式使用它:

      1. 安装:sudo apt-get install apt-file
      2. 正在更新 apt-file 数据库:sudo apt-file update
      3. 查看文件: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
      ...
      

      debuggergem 的特殊情况下,缺少的包是`libcxxtools-dev`

      我使用的是 Debian 3.2.54-2 x86_64 GNU/Linux

      【讨论】:

        【解决方案6】:

        对我来说,这是一个许可问题。

        我能够用

        解决这个问题

        sudo gem 安装调试器

        如果这没有帮助,您可能不得不陷入依赖兔子洞。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-17
          • 2015-06-13
          • 1970-01-01
          • 2015-03-01
          • 1970-01-01
          • 2011-07-10
          • 2012-02-04
          • 1970-01-01
          相关资源
          最近更新 更多