2015-06-30 56 views
2

我在rails應用程序中使用ruby 1.9.3。我在OSX Yosemite上使用rbenv和gcc 4.2成功安裝了ruby,並且可以安裝與bundler的依賴關係。使用rbenv安裝ruby的分段錯誤

當我嘗試安裝,我得到以下錯誤的數據庫:

bundle exec rake db:setup 
foo already exists 
foo_test already exists 
ruby(31773,0x7fff79ac7300) malloc: *** error for object 0x7fe00a8c0dc8: incorrect checksum for freed object - object was probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug 
[1] 31773 abort  bundle exec rake db:setup 

我第一次得到一個不同的錯誤信息後:

$ bundle exec rake db:setup 
-- create_table("foo", {:force=>true}) 
    -> 0.0241s 
... 
-- create_table("bar", {:force=>true}) 
    -> 0.0241s 
/Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:601: [BUG] Segmentation fault 
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin14.3.0] 

-- Control frame information ----------------------------------------------- 
c:0062 p:0012 s:0220 b:0220 l:000219 d:000219 METHOD /Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:601 
c:0061 p:0071 s:0216 b:0214 l:000195 d:000213 BLOCK /Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:461 
c:0060 p:0005 s:0212 b:0212 l:000201 d:000211 BLOCK /Users/jedi/code/foo/.bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/migration.rb:438 
... 
-- Ruby level backtrace information ---------------------------------------- 
/Users/jedi/code/foo/.bundle/ruby/1.9.1/bin/rake:23:in `<main>' 
/Users/jedi/code/foo/.bundle/ruby/1.9.1/bin/rake:23:in `load' 
... 
[NOTE] 
You may have encountered a bug in the Ruby interpreter or extension libraries. 
Bug reports are welcome. 
For details: http://www.ruby-lang.org/bugreport.html 

我試着更新到2.0.0紅寶石並使用clang編譯ruby,但總是得到相同的結果。有任何想法嗎?

+1

還嘗試安裝紅寶石rvm。相同的結果。 – juanedi

+0

你正在使用紅寶石1.9.3p484,你能用ruby 1.9.3p551來試試你的代碼嗎? 你的代碼在不同的操作系統上運行良好嗎?例如,您可以使用vagrant在虛擬框中安裝ubuntu進行測試。 – jiop

+0

已經嘗試增加補丁級別,並沒有幫助。即使在其他OSX Yosemite計算機上,該應用程序運行良好。謝謝! – juanedi

回答

1

這是由於計算機上安裝的zeromq版本不正確而引起的。我們正在使用一個針對zeromq 3但安裝了版本4的gem。

在一些二進制搜索刪除和添加從Gemfile的依賴關係後,我得出了這個結論。降級zeromq完成了這項工作。

對我來說,它仍然是一個神祕的爲什麼錯誤報告是如此誤導,但問題解決。