2011-02-05 94 views
0

我試圖在沒有安裝Apple開發包的計算機上安裝Nokogiri。在沒有Apple開發包的情況下安裝Nokogiri(Xcode)

我需要能夠在沒有管理權限的情況下在後檯安裝nokogiri。 由於Nokogiri是我希望能夠在任何OS X 10.5+機器上安裝的腳本的一部分。

我試過運行這個。

gem install nokogiri

得到了這個。

WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and 
     /usr/bin aren't both writable. 
WARNING: You don't have /Users/linus/.gem/ruby/1.8/bin in your PATH, 
     gem executables will not run. 
Building native extensions. This could take a while... 
ERROR: Error installing nokogiri: 
    ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h 


Gem files will remain installed in /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4 for inspection. 
Results logged to /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out 

我發現this經過一番搜索。

Apple發佈框架的頭文件 與Xcode,而不是操作系統。 因爲我在安裝後升級了 Xcode我不得不重新安裝XCode以獲得 Ruby頭文件。 Xcode附帶 安裝DVD,您可以在 可選安裝目錄中找到它。

回答

3

Nokogiri依賴於libxml2,它是一個標準的XML解析器。要訪問libxml2,必須使用C庫並鏈接一些接口代碼以將Nokogiri的Ruby接口粘貼到libxml2的C,這是Apple的XCode所在的地方。

XCode提供所需的編譯器,鏈接器,頭文件make。換句話說,一切都需要使它工作。

現在,理論上來說,可以在一臺裝有XCode的Mac上構建Nokogiri,然後將生成的gem複製到另一臺Mac,只要它們具有相同的其他所有內容,如Ruby版本和libxml2版本。這不是我們在Mac上或在基於Unix的系統上執行操作的常用方式,所以您可以大膽地去我們大多數人不需要去的地方,包括我在內,所以您可能想要在Nokogiri-Talk mail list,開發人員可以幫助您。他們將確切知道需要複製哪些部分,以及應該安裝哪些部分以使事情按照您的要求工作。

關於XCode的注意事項:隨雪豹一起發售的DVD上的版本是越野車,所以不應使用它。相反,請從Apple's XCode Developer site下載版本。它需要登錄,但註冊是免費的。

不需要任何編譯或XCode的替代方法是使用Ruby的ReXML XML解析器。它默認包含在Ruby中。它不支持所有的Nokogiri好吃的東西,但它已經在那裏了。

相關問題