我正试图在小牛队的大型项目中做bundle
,尽管这是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)
答案 0 :(得分:12)
从debugger page它说如果找不到ruby源,它会尝试安装debugger-ruby_core_source,这实际上对我来说是失败的。我使用rbenv,所以我根据调试器gem指令,将其指向rbenv源。
gem install debugger -- --with-ruby-include=~/.rbenv/versions/1.9.3-p484/include
答案 1 :(得分:5)
最好使用最新版本的调试器,bc issue已经解决了你的Ruby版本。
答案 2 :(得分:1)
Ruby gem和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
然后你应该好好去。
答案 3 :(得分:0)
可能会对您有所帮助gem install debugger-linecache -v '1.1.2' -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p286/
答案 4 :(得分:0)
有时这个问题与丢失的包有关。大多数情况下,这些文件(例如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
答案 5 :(得分:0)
对我而言,这是一个许可问题。
我能够用
解决这个问题sudo gem install debugger
如果这没有帮助,你可能不得不卷入一个依赖性兔子洞。