2011-04-19 40 views
35

我可能已經採取了一步太遠超出了我的知識。我安裝了Homebrew,之後它繼續給我發出安裝MacPorts的警告,我卸載了它。但是現在我的rspec測試不運行。錯誤使用RSpec的,安裝自制軟件後失蹤圖書館和卸載的MacPorts

這是我得到的錯誤:

/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri.rb:13:in `require': dlopen(/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /opt/local/lib/libiconv.2.dylib (LoadError) 
    Referenced from: /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle 
    Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 - /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle 
..... 
..... 

我已經通過自制安裝libiconv的,但是這並沒有解決它。它抱怨libiconv版本號。這是問題嗎?

這到底是怎麼回事,什麼我需要做什麼?

+0

在哪裏libiconv的* .dylib在安裝什麼版本號是他們的名字 – Mark 2011-04-19 09:18:27

+0

我在同一條船上來的。 – JohnAgan 2011-04-21 12:35:36

回答

83

我再次爲所有感興趣的人工作。我刪除並重新安裝nokogiri寶石,一切似乎再次工作。

+1

今天遇到了這個確切的問題。 – 2011-05-20 18:28:42

+1

這裏同樣的問題。重新安裝後,一切似乎都恢復正常。謝謝! – eastafri 2011-05-26 07:50:17

+0

謝謝你,很好,很簡單:-) – phatmann 2011-11-13 14:09:30

0

我不得不重新安裝的libxml-紅寶石除了引入nokogiri把事情再次合作。

15

一般來說,這個問題是由暫時無法找到合適的libiconv的引起的。這是我如何解決我的問題:

檢查的otool -L /usr/lib/libiconv.2.dylib輸出。我得到了以下的輸出:

/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

然後我安裝libiconv的與自制,brew install libiconv,並顯示它使用brew list libiconv安裝。我得到了以下的輸出:

/usr/local/Cellar/libiconv/1.14/bin/iconv 
/usr/local/Cellar/libiconv/1.14/include/ (3 files) 
/usr/local/Cellar/libiconv/1.14/lib/libcharset.1.dylib 
/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib 
/usr/local/Cellar/libiconv/1.14/lib/ (3 other files) 
/usr/local/Cellar/libiconv/1.14/share/doc/ (6 files) 
/usr/local/Cellar/libiconv/1.14/share/man/ (6 files) 

的libiconv的安裝在/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib。然後我檢查新安裝的libiconv的優化版本的, otool -L /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib,我得到了以下的輸出:

/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib: 
/usr/local/opt/libiconv/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

的版本是正確的,我們需要可供Ruby這個庫。創建符號鏈接是一個快速的解決方案:

sudo ln -s /usr/local/opt/libiconv/lib/libiconv.2.dylib /opt/local/lib/libiconv.2.dylib 
+8

我認爲你可以用'brew link --force libiconv'取代最後一步,無論如何,你的答案是一個非常好的解決方案,因爲它不涉及重新安裝nokogiri。 – sybohy 2013-02-11 21:03:22

+0

感謝您的支持!非常幫助我!我不確定每個人,但我需要在釀造之前添加'brew tap homebrew/dupes',找到'libiconv'公式。 – Indranil 2014-01-22 01:40:57

0

FWIW,我碰到了同樣的問題,如果你是vendorizing你的寶石,你將不得不刪除供應商/紅寶石違規寶石的寶石卸載+重新安裝並不總是有效。我猜測捆綁器即使在運行全新安裝時也會留下緩存的寶石及其各自的庫。