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

我在其他SO问题中看到了非常类似的问题(例如,ruby-1.9.2-p321没有提供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. 重置gemfile.lock

  4. gem install debugger-ruby_core_source

也可能是其他一些……但似乎没有任何效果。

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

尝试安装debugger而不指定版本,然后再次运行bundle install

我有同样的错误,它只是工作,不要问我为什么:

 $ gem install debugger $ bundle install 

在尝试使用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版本提供的。

查看README for debugger-ruby_core_source ,有一个rake任务,用于为ruby版本添加所需的文件。

从gem目录中的命令行开始,我跑了

 $ rake add_source VERSION=2.0.0-p598 

当我第一次运行此任务时,我收到一个错误,并且需要在再次运行rake任务之前安装archive-tar-minitar gem。

rake任务为我的版本添加了头文件后,我能够成功安装并运行调试器。

我在这里发帖是因为绝对没有用。 解决这个问题的唯一解决方案:

即使我们正在安装调试器,但错误在于安装需求,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’没有ruby的来源

问题是你的Gemfile.lock列出了一个旧的debugger-ruby_core_source gem。 该gem需要知道您的特定ruby版本,以正确获取头文件,如果您的bundle安装的版本太旧,它将无法工作。

正确的解决方案是通过运行更新您的Gemfile.lock与新版本

 bundle update debugger-ruby_core_source 

@ delba和@ superuseroi的答案基本上归结为使用gem直接从源代码安装debugger-ruby_core_source gem – 它将提取最新版本,但修复你的bundle会更容易并且也会在你的源代码控制中持续存在(至少直到你接下来升级你的Ruby)。

另请参阅有关常见Ruby gem问题的文章

调试器需要Ruby的源代码才能工作。

所以只需用源代码重新安装Ruby(而不是bin)。

例如:

 rvm reinstall 2.0.0 --disable-binary 

ruby版本和rails的调试器gem的兼容性似乎存在问题。 运行以下命令对我有用:

  rvm ruby-2.0.0-p481 

如果它不起作用

  rvm list 

将获得ruby版本列表。 选择一个可能有用的旧版ruby版本。

谢谢大家。

 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 

和捆绑安装工作。

要解决此问题,您需要重新安装rails的源代码。 此命令将解决此问题:

$ rvm reinstall 2.0.0 --disable-binary

然后,命令$ bundle install将起作用。

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

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