调试器不会安装 Rails 4.1.5

Posted

技术标签:

【中文标题】调试器不会安装 Rails 4.1.5【英文标题】:debugger won't install Rails 4.1.5 【发布时间】:2014-10-16 19:40:52 【问题描述】:

所以我试图做一个bundle update,我得到了:

Gem::Ext::BuildError: ERROR: 未能构建 gem 原生扩展。

/home/adam/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb 

* extconf.rb failed * 由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。查看 mkmf.log 文件以获取更多详细信息。您可能需要配置 选项。

提供的配置选项:--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=/home/adam/.rvm/rubies/ruby-2.1.2/bin/ruby /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in stat': No such file or directory @ rb_file_s_stat - ./212/ruby_debug.h (Errno::ENOENT) from /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in block in fu_each_src_dest' 来自 /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1587:in fu_each_src_dest0' from /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1571:in fu_each_src_dest' 来自 /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:399:in cp' from extconf.rb:83:inblock in '来自 extconf.rb:82:in each' from extconf.rb:82:in'

extconf 失败,退出代码 1

Gem 文件将继续安装在 /home/adam/.rvm/gems/ruby-2.1.2/gems/debugger-1.6.8 用于检查。 结果记录到 /home/adam/.rvm/gems/ruby-2.1.2/extensions/x86_64-linux/2.1.0/debugger-1.6.8/gem_make.out 安装调试器 (1.6.8) 和 Bundler 时出错 无法继续。确保gem install debugger -v '1.6.8' 在捆绑之前成功。

所以我尝试执行以下操作:gem install debugger -v '1.6.8' 并得到了

构建原生扩展。这可能需要一段时间... 错误:错误 安装调试器:错误:无法构建 gem 原生扩展。

/home/adam/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb

* extconf.rb failed * 由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。查看 mkmf.log 文件以获取更多详细信息。您可能需要配置 选项。

提供的配置选项:--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=/home/adam/.rvm/rubies/ruby-2.1.2/bin/ruby /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in stat': No such file or directory @ rb_file_s_stat - ./212/ruby_debug.h (Errno::ENOENT) from /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in block in fu_each_src_dest' 来自 /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1587:in fu_each_src_dest0' from /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1571:in fu_each_src_dest' 来自 /home/adam/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:399:in cp' from extconf.rb:83:inblock in ' 来自 extconf.rb:82:in each' from extconf.rb:82:in'

extconf 失败,退出代码 1

Gem 文件将继续安装在 /home/adam/.rvm/gems/ruby-2.1.2/gems/debugger-1.6.8 用于检查。 结果记录到 /home/adam/.rvm/gems/ruby-2.1.2/extensions/x86_64-linux/2.1.0/debugger-1.6.8/gem_make.out

我还有 4 个其他 Rails 应用程序都在运行 4.1.5,它们都对 bundle update 没有任何问题,那么这是怎么回事?

【问题讨论】:

【参考方案1】:

调试器 gem 不应该与 ruby 2.0+ 一起使用,并且实际上不会与 ruby 2.1.2 一起安装。你将不得不切换到byebug。

如果你是 pry 的粉丝,还有pry-byebug

这是我在 Gemfile 中的调试 gem 在 Rails 4 和 Ruby 2.1.2 中的样子

group :development do
    gem 'pry'
    gem 'pry-remote'
    gem 'pry-rails'
    gem 'pry-stack_explorer'
    gem 'pry-byebug'
end

【讨论】:

以上是关于调试器不会安装 Rails 4.1.5的主要内容,如果未能解决你的问题,请参考以下文章

使用 Intellij/Rubymine 在 docker 中调试 rails 应用程序

无法安装调试器

Bundler 无法安装调试器 1.6.8

如何在带有 Rails 4.2 的专用调试端口上使用工头启动 Rails?

Rails 6 - 传递给部分时未定义的局部变量,但当我将调试器放入 erb 文件时定义了它

Rails 3:我的视图没有被渲染