我在其他SO问题(例如No source for ruby-1.9.2-p321 provided with debugger-ruby_core_source gem)以及Google搜索中看到了非常类似的问题,但到目前为止这些问题都没有帮助。
我正在使用OSX Mavericks(第一次使用mac用户)和rbenv(第一次使用它)。我已经克隆了一个Rails项目,我以前在另一台笔记本电脑上运行(Ubuntu& rvm)。
rbenv version
:2.0.0-p451(我手动安装)
当我尝试bundle install
时,我得到以下内容:
...
Using debugger-ruby_core_source (1.3.1)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/macuser/.rbenv/versions/2.0.0-p451/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-2.0.0-p451 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.
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=/Users/macuser/.rbenv/versions/2.0.0-p451/bin/ruby
--with-ruby-dir
--without-ruby-dir
--with-ruby-include=${ruby-dir}/include
--with-ruby-lib
--without-ruby-lib=${ruby-dir}/
Gem files will remain installed in /Users/macuser/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/debugger-1.6.5 for inspection.
Results logged to /Users/macuser/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/debugger-1.6.5/ext/ruby_debug/gem_make.out
An error occurred while installing debugger (1.6.5), and Bundler cannot continue.
Make sure that `gem install debugger -v '1.6.5'` succeeds before bundling.
所以我尝试运行gem install debugger -v '1.6.5'
,它会抛出与上面相同的错误。
从搜索周围,这里有一些我尝试不成功的事情:
也许还有其他一些......但似乎没什么用。
更新:将我的rbenv本地环境切换到ruby 2.1.0并且它工作正常。没有解决潜在的问题,但这很好我猜
答案 0 :(得分:22)
尝试安装debugger
而不指定版本,然后再次运行bundle install
。
我有同样的错误,它只是起作用,不要问我为什么:
$ gem install debugger
$ bundle install
答案 1 :(得分:15)
在尝试使用ruby 2.0.0-p598安装dubugger时遇到了我认为同样的问题。
gem debugger-ruby_core_source是调试器的依赖项,并为安装调试器时似乎使用的特定版本的ruby提供头文件。查看debugger-ruby_core_source/lib/debugger/ruby_core_source/
以查看支持哪些版本 - 不为所有ruby版本提供头文件。就我而言,它们不是为2.0.0-p598版本提供的。
查看 debugger-ruby_core_source 的自述文件,有一个rake任务,用于添加ruby版本所需的文件。
从gem目录中的命令行,我跑了
$ rake add_source VERSION=2.0.0-p598
当我第一次运行此任务时,我收到错误,并且需要在再次运行rake任务之前安装archive-tar-minitar gem。
rake任务添加了我的版本的头文件后,我能够成功安装并运行调试器。
答案 2 :(得分:9)
我在这里发帖是因为绝对没有用。解决问题的唯一解决方案是:
即使我们正在安装调试器,但错误在于安装需求,debugger-ruby_core_source。
如果你看一下它引起问题的确切错误。
No source for ruby-2.0.0-p451 provided with debugger-ruby_core_source gem.
实际上很容易修复此错误。只需运行以下命令,安装依赖项,然后重试:
gem install debugger-ruby_core_source
将此解决方案归功于:FIXED gem install debugger -v ’1.6.2′ No source for ruby
答案 3 :(得分:5)
问题是您的Gemfile.lock
列出了旧的debugger-ruby_core_source
宝石。宝石需要知道你的特定ruby版本,正确获取头文件,如果你的bundle安装的版本太旧,它将无法工作。
正确的解决方案是通过运行
更新您的Gemfile.lock
新版本
bundle update debugger-ruby_core_source
@ delba和@ superuseroi的答案基本上归结为使用gem
直接从源代码安装debugger-ruby_core_source
gem - 这将提取最新版本,但修复捆绑包将更容易,也将坚持你的源代码控制(至少在你下次升级你的Ruby之前)。
另请参阅有关common Ruby gem issues
的文章答案 4 :(得分:2)
调试器需要Ruby的源代码才能工作。
所以只需用源代码重新安装Ruby(而不是bin)。
例如:
rvm reinstall 2.0.0 --disable-binary
答案 5 :(得分:0)
ruby版本和rails的调试器gem的兼容性似乎存在问题。 运行以下命令对我有用:
rvm ruby-2.0.0-p481
如果没有工作类型
rvm list
将获得ruby版本列表。 选择一个可能有用的旧版ruby版本。
答案 6 :(得分:0)
谢谢大家。
rvm list
rvm ruby-2.0.0-p451
尝试捆绑安装,得到有关无法安装到非裸存储库的错误,建议我删除缓存目录;我做了:
rm -rf /usr/local/rvm/gems/ruby-2.0.0-p451/cache/
试图
rvm gemsest use [my_gemset_name]
并得到了同样的错误。
最终使用:
rvm gemset use default
并且捆绑安装工作。
答案 7 :(得分:0)
要解决此问题,您需要重新安装rails的源代码。此命令将解决问题:
$ rvm reinstall 2.0.0 --disable-binary
然后,命令$ bundle install
将起作用。
答案 8 :(得分:0)
使用byebug gem而不是很好地解决我的问题。