2014-02-24 46 views
18

我在其他SO問題(例如No source for ruby-1.9.2-p321 provided with debugger-ruby_core_source gem)以及Google搜索中看到過非常類似的問題,但目前爲止這些問題都沒有幫助。ruby​​-2.0.0-p451沒有ruby_core_source提供的源代碼gem

我正在使用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

也許還有其他一些......但似乎沒有任何工作。

更新:將我的rbenv本地環境切換到ruby 2.1.0,它工作。沒有解決底層問題,但這是好的我猜

+0

你可以嘗試以下嗎? 'gem install debugger -v'1.6.5' - --with-system-v8' – MrYoshiji

+0

仍然給出同樣的錯誤 – stoneage

回答

22

嘗試安裝debugger沒有指定版本,然後再次運行bundle install

我有同樣的錯誤,這只是工作,不要問我爲什麼:

$ gem install debugger 
$ bundle install 
+0

我添加了同樣的問題並安裝時沒有指定爲我工作的版本。它安裝了1.6.6。這是版本1.6.5的問題嗎? –

+0

也適用於我,'CentOS',ruby'1.9.3-p545',ruby gem'2.2.2' –

+0

看起來就像安裝更新版本安裝1.6.5所依賴的debugger-ruby_core_source一樣。再次運行軟件包安裝適用於舊版本,因爲依賴項現在已安裝 – chrispanda

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

+0

是的這似乎工作。嘗試運行舊版Rails 3應用程序時出現此錯誤。 – Donato

5

的問題是,你的Gemfile.lock列出一個老debugger-ruby_core_source寶石。該gem需要知道您的特定ruby版本,正確獲取頭文件,並且如果您的捆綁軟件安裝版本太舊,它將無法正常工作。

正確的解決方法是用新版本更新您的Gemfile.lock,通過運行

bundle update debugger-ruby_core_source 

@ delba的和@ superuseroi的回答基本上灌進使用gem直接從源安裝debugger-ruby_core_source寶石 - 這將拉最新版本,但修復你的包會更容易,並且還會持續在你的源代碼控制中(至少在你下一次升級你的Ruby之前)。

也看到這篇文章common Ruby gem issues

+0

感謝 - 爲我解決了這個問題 –

15

我遇到了什麼,我相信是嘗試安裝紅寶石2.0.0-p598 dubugger同樣的問題。

寶石debugger-ruby_core_source調試的依賴,並提供頭文件,似乎在安裝調試使用紅寶石的特定版本。查看debugger-ruby_core_source/lib/debugger/ruby_core_source/以查看哪些版本受支持 - 頭文件不提供給所有的ruby版本。就我而言,他們沒有提供2.0.0-p598版本。

查看的自述文件debugger-ruby_core_source,有一個rake任務用於爲ruby版本添加所需的文件。

從寶石的目錄中的命令行,我跑

$ rake add_source VERSION=2.0.0-p598 

當我運行這個任務的第一次,我收到一個錯誤,並需要再次運行rake任務之前安裝archive-tar-minitar寶石。

在rake任務爲我的版本添加頭文件後,我能夠成功安裝並運行調試器。

+0

我的工作方式,從delba,superuseroi和Guss的解決方案沒有影響,同樣的錯誤。 這個爲我解決了它。 – Yardboy

0

似乎有一個與ruby版本和rails的調試器gem的兼容性問題。 運行下面的命令爲我工作:

rvm ruby-2.0.0-p481 

如果它不工作類型

rvm list 

將獲得的紅寶石版本列表。 選擇一個較老的ruby版本,可能會有效。

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 

和捆綁安裝工作。

2

調試器需要Ruby的源代碼才能工作。

所以,只需重新安裝與源(不是倉)的Ruby。

例如:

rvm reinstall 2.0.0 --disable-binary 
0

使用byebug寶石,而不是解決我的問題非常好。

相關問題