2012-12-27 69 views
24

雖然嘗試了一個新的項目捆綁運行,我遇到了以下錯誤:錯誤安裝調試器:無法建立與紅寶石1.9.3-P362寶石原生擴展

Installing debugger (1.2.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    C:/Ruby193/bin/ruby.exe 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-1.9.3-p362 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=C:/Ruby193/bin/ruby 
     --with-ruby-dir 
     --without-ruby-dir 
     --with-ruby-include 
     --without-ruby-include=${ruby-dir}/include 
     --with-ruby-lib 
     --without-ruby-lib=${ruby-dir}/lib 


Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.2.2 for inspection. 
Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.2.2/ext/ruby_debug/gem_make.out 
An error occured while installing debugger (1.2.2), and Bundler cannot continue. 
Make sure that `gem install debugger -v '1.2.2'` succeeds before bundling. 

運行gem install debugger -v '1.2.2'產生相同結果。

我檢查了mkmf.log和gem_make.out文件的內容,它們沒什麼意義,但如果要求我會發布它們。

爲什麼不能正常工作?

+4

如果'ruby -v'給你'2.x',可以考慮使用[byebug](https://github.com/deivid-rodriguez/byebug)來代替(正如[官方文檔中所述](https:/ /github.com/cldwalker/debugger#known-issues)*僅支持1.9.2和1.9.3 *)。 – Lucio

+1

@Lucio,byebug「需要版本2.2.x」及以上版本。顯然,ruby 2.0用戶在完全冷靜的情況下被排除在有用的調試器之外(這絕對不是)。 – Otheus

回答

41

我遇到了同樣的問題。我想:

bundle update debugger

我的Gemfile過這樣的:

gem 'debugger'

和它的工作,我沒有改變的Gemfile。束的輸出顯示這樣的事情

...

Installing debugger-ruby_core_source (1.1.6)

Installing debugger-linecache (1.1.2) with native extensions

Installing debugger (1.1.4) with native extensions

...

+0

下次我遇到類似的錯誤時,我會試試這個。它看起來像我走了很長的路要到那裏;;) – erroric

+0

什麼!@#$%^ ...它是如何工作的? ;)是否使用新版本的gem? –

+1

爲什麼我會得到'apple $ bundle update debugger 找不到gem'debugger'.'錯誤? – Gank

15

問題的解決方案是簡單地安裝debugger-ruby_core_source gem -a forked version of debugger-ruby_core_source by eiel on github

大量的試驗和錯誤(對我而言),我只是

gem install debugger-ruby_core_source -v '1.1.6' 

這迫使P362頭的包容性。然後,當我跑bundle,調試成功建立與原生擴展,和打捆繼續它的快樂的方式,所以是一

剛一說明,而我用簡單好幾次,我試過幾件事情並花了幾個小時纔得到這個工作,然後我才真正找到了簡單的解決方案。

+0

Bravo! 'gem install debugger-ruby_core_source'允許我繼續使用捆綁方式。 :-) – chadoh

10

也許它更好地使用軟件包更新,在這裏工作得很好。

$ bundle update debugger-ruby_core_source

考慮用更新的所有調試寶石:

$ bundle update debugger

0

爲我工作:

$ rvm use 2.0 

,或者設置成默認:

$ rvm use --default 2.0 
4

恰好碰到了這種通過RVM安裝了Ruby 2.0.0。沒有其他解決方案爲我工作。

RVM將只是二進制文件(如果可用),這是更快安裝,但調試器需要的源太

rvm reinstall 2.0.0 --disable-binary 
+0

謝謝你......正如你所說「沒有其他解決方案爲我工作」 –

+0

嗯。沒有在這裏工作。 – cevaris

1

,如果你會使用RVM,請確保您有合適的子版本,以匹配貶低-ruby_core_source ordebugger-ruby_core_source。

即 debase-ruby_core_source for ruby​​ 2.0.0僅支持p195,p247,p353,p451,p481,p576。不支持上面的 !

如果您的ruby版本與提供的源不匹配。你將無法完成。 (即因「無法找到源錯誤!」)

------------debase-ruby_core_source 0.6.0 vm_Core support list ---------------- 
../usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p0/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p195/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p247/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p353/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p451/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p481/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.0.0-p576/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.0-p0/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.1-p76/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.2-p95/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.1.3-p242/vm_core.h 
./usr/local/rvm/rubies/ruby-2.0.0-p598/lib/ruby/gems/2.0.0/gems/debase-ruby_core_source-0.6.0/lib/debase/ruby_core_source/ruby-2.2.0-preview1/vm_core.h 
5

經過一段時間,我終於放棄了,並用byebug代替debugger

要使用撬使用:

gem 'pry', group: [:development, :test] 
gem 'pry-byebug', group: [:development, :test] 

你可以,那麼你要開始調試任意地方扔binding.pry聲明。

相關問題