没有ruby-2.0.0-p451的源代码,它提供了debugger-ruby_core_source gem

时间:2014-02-24 20:57:12

标签: ruby-on-rails ruby rubygems

我在其他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',它会抛出与上面相同的错误。

从搜索周围,这里有一些我尝试不成功的事情:

  1. rake add_source

  2. bundle update debugger

  3. Resetting gemfile.lock

  4. gem install debugger-ruby_core_source

  5. 也许还有其他一些......但似乎没什么用。

    更新:将我的rbenv本地环境切换到ruby 2.1.0并且它工作正常。没有解决潜在的问题,但这很好我猜

9 个答案:

答案 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将起作用。


参考https://pfonseca.com/error-to-install-debugger-s-gem

答案 8 :(得分:0)

使用byebug gem而不是很好地解决我的问题。