Ruby 2.1.0 / 2.1.1 / 2.1.2 不支持调试器 gem

Posted

技术标签:

【中文标题】Ruby 2.1.0 / 2.1.1 / 2.1.2 不支持调试器 gem【英文标题】:Debugger gem not supported in Ruby 2.1.0 / 2.1.1 / 2.1.2 【发布时间】:2014-01-16 13:45:05 【问题描述】:

我刚刚将我的 RVM Ruby 安装升级到 2.1.0 版并尝试捆绑安装,但出现以下错误:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
Ruby version 2.1.0 is not supported.
*** extconf.rb failed ***

这个错误当然是不言自明的,但我想知道是否有办法让 Debugger gem 与最新版本的 Ruby 一起工作?

【问题讨论】:

您要安装哪个版本的调试器 gem?只有调试器 1.6.4 支持 Ruby 2.1.0。 我正在尝试安装 1.6.4 【参考方案1】:

看起来 1.6.5 版增加了对 Ruby 2.1.0 的支持。 - 按预期工作。

更新: 由于 Ruby 2.1.1 已经发布,应该使用 1.6.8 版的 Debugger。

【讨论】:

是的,从 2.1.0 切换到 2.1.1 并且工作正常)很酷。非常感谢男人 调试器在 ruby​​ 2 中按预期工作只是运气。它最终会出现段错误或行为怪异。请使用 byebug。 调试器在 ruby​​ 2 中不支持 github.com/cldwalker/debugger/issues/125#issuecomment-43353446【参考方案2】:

这在其中一个 cmets 中提到过,但我想提请注意:

byebug 是目前推荐用于 Ruby 2.0+ 的调试器

此问题已记录在 here,调试器的作者 cldwalker 指出,调试器将适用于 Ruby 1.9.2 和 1.9.3。

【讨论】:

【参考方案3】:

对于那些使用 Ruby 2.1.2 并在构建原生 gem 扩展时遇到此错误的用户:

没有这样的文件或目录@rb_file_s_stat - ./212/ruby_debug.h (Errno::ENOENT)

结论是用byebug(https://github.com/cldwalker/debugger/issues/131)

【讨论】:

【参考方案4】:

1.6.4 版本是expected to have limited 2.1.0 support(我猜这意味着它至少应该编译和运行)。这是commit。

但是,其他用户reported a compilation issue two days ago (#110)。您可以关注讨论以查看问题何时会得到解决。您还可以在工单中发布您的编译错误和环境详细信息,以便维护者可以获得更多信息。

【讨论】:

是的,extconf.rb 有 if/else 结构,它比较 ruby​​ 版本,如果版本不是 2.0.0 或 1.9.x,它会说:不支持 Ruby 版本 X.X.X。

以上是关于Ruby 2.1.0 / 2.1.1 / 2.1.2 不支持调试器 gem的主要内容,如果未能解决你的问题,请参考以下文章

编码 64、Ruby 和 Mandrill API

Ruby 2.0.0,而不是 Rails 网站上的 2.1.0 推荐?

您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0

为啥 rvm install ruby​​-2.1.0 会安装 preview1?

ruby 在多个数组上映射一个函数

您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.1