2011-02-05 16 views
0

Appleの開発パッケージがインストールされていないコンピュータにNokogiriをインストールしようとしています。NokogiriをAppleの開発パッケージ(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で で出荷しており、OSでは提供していません。 Xcodeをインストールした後にアップグレードしたので、Xcodeを再インストールして、 Rubyヘッダーを取得する必要がありました。 Xcodeは インストールDVDに同梱されており、 Optional Installsディレクトリにあります。

答えて

3

Nokogiriは、標準のXMLパーサーであるlibxml2に依存しています。 libxml2にアクセスするには、Cライブラリを使用し、NokogiriのRubyインターフェースをlibxml2のCに貼り付けるためのインターフェイスコードをリンクする必要があります。

XCodeは必要なコンパイラ、リンカー、ヘッダーファイル、makeを提供します。つまり、それを動作させるために必要なものすべて。

理論上は、XCodeを搭載したMacでNokogiriを構築し、Rubyやlibxml2など、他のものと同じものがあれば、別のMacにコピーすることも可能です。それは、私たちがMacやUnixベースのシステムでやっている通常のやり方ではないので、大部分は私たちのほとんどが行く必要のない場所に行っているので、あなたもあなたの質問をNokogiri-Talk mail list、開発者がお手伝いできる場所。彼らは、コピーする必要のあるパーツと、あなたが望むように動作するようにインストールする場所を正確に知っています。

XCodeについての注意:Snow Leopardに付属しているDVDのバージョンはバグがありますので、使用しないでください。代わりに、Apple's XCode Developer siteからバージョンをダウンロードしてください。ログインする必要がありますが、登録は無料です。

コンパイルやXCodeを必要としない代替方法は、RubyのReXML XMLパーサを使用することです。これは、デフォルトではRubyに含まれています。それはNokogiriグッズのすべてをサポートしているわけではありませんが、既にあります。

関連する問題