2012-07-12 40 views
18

在安裝完全新安裝的Mac OS X 10.8 Mountain Lion並安裝Ruby 1.9.3和Ruby on Rails 3.2.6後,我開始了Rails的控制檯,我得到這個警告消息:警告:Nokogiri是針對LibXML 2.7.3版本構建的,但已動態加載2.7.8

警告:引入nokogiri始建反對的libxml版本2.7.3,但 動態加載2.7.8

我怎樣才能解決呢?

+0

這就是答案:[http://stackoverflow.com/questions/16921700/how-to-load-correct-version-of-dynamic-libraries-and-gems-libxml-nokogiri-wit][1] [1]:http://stackoverflow.com/questions/16921700/how-to-load-correct-version-of-dynamic-libraries-and-gems-libxml-nokogiri-wit – 2013-10-24 12:00:10

回答

13

我發現了Lion的一些修正,但沒有爲Lion Lion修復。不過我已經嘗試這樣做,它的工作原理:

gem uninstall nokogiri libxml-ruby 

brew update 
brew uninstall libxml2 
brew install libxml2 --with-xml2-config 
brew link libxml2 

brew install libxslt 
brew link libxslt 

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2/ --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/ 

來源(適用於獅子):https://gist.github.com/1349681

+0

這可能但是對於Rails/RVM環境來說,@ kyubey的答案可能更一般。 – 2012-10-08 19:50:22

+0

這取決於。有時候@ kyubey的回答不起作用,尤其是在安裝了舊紅寶石的系統上。在新安裝的OS X上,AFAIK沒有問題。 – 2012-10-09 13:44:29

+0

嗨,大家好,這是優勝美地嗎? – olleh 2015-01-12 08:32:36

13

我重新安裝紅寶石,即固定它。能夠使用內置庫。

+2

這真的是要走的路。只需重新安裝紅寶石,然後您不必擔心使用自定義編譯的libxml的複雜性。 – kjg 2012-07-26 17:28:08

+3

簡單:'rvm uninstall 1.9.3-p194'。然後'rvm安裝1.9.3'。之前的所有寶石均保留。 '寶石安裝nokogiri'。作品! – Meltemi 2012-07-26 23:30:51

+0

我不得不安裝Xcode和命令行工具來再次安裝ruby 1.9.3(即使使用brew的apple-gcc42也不適合我)。可以使用首選項 - >下載 - >組件安裝Xcode CLI。 – danigb 2012-07-28 10:27:02

13
gem uninstall nokogiri 
bundle install 

變得更棒:

gem pristine nokogiri 

注:

爲你升級你的系統庫改變這屢有發生。

+1

這在山獅(10.8.2)中適用於我。捆綁安裝重新下載nokogiri並重新編譯它,使用我已經安裝的libxml。 – 2012-12-09 14:13:56

+0

確認這適用於我在山獅10.8.2 – nXqd 2013-04-16 12:56:47

+0

我已經使用過這兩次了:「gem pristine nokogiri」 – 2013-08-21 02:46:18

0

基於@David的回答,以下步驟對我來說已經足夠了。沒有編譯器標誌和自定義路徑。

gem uninstall nokogiri 

brew update 
brew install libxml2 
brew update libxml2 
brew link libxml2 

gem install nokogiri 
4

請注意,關聯在@Davids後會與您的編譯工具和鏈路發生干擾到您的OS(這是最有可能不是你想要什麼,如果你使用BREW),但你可以執行的每個命令除了以上省略了「BREW鏈接」行,一切仍然會建造得很好,例如:

gem uninstall nokogiri libxml-ruby 
brew update 
brew uninstall libxml2 
brew install libxml2 --with-xml2-config 
brew install libxslt 

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2/ --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/ 
+1

這是一個常見問題,所以,但這是爲我修復它的答案。其他任何人都應該注意到版本已經改變了,所以不要複製/粘貼最後一行。 'gem install nokogiri - --with-xml2-include =/usr/local/Cellar/libxml2/[VERSION]/include/libxml2/--with-xml2-lib =/usr/local/Cellar/libxml2/[VERSION ]/lib/--with-xslt-dir =/usr/local/Cellar/libxslt/[VERSION] /' – 2013-09-23 01:03:40

3

gem 'nokogiri'上述gem 'pg'在我的Gemfile固定這對我來說。

我的Gemfile中沒有nokogiri,但是它是Gemfile.lock中的依賴項,所以我將它明確地放在我的Gemfile中。

相關問題