2011-01-28 5 views
10

Rails 3では、私はフレームワークを呼び出すたびにrakerails server、その他何かに気づきました。警告:NokogiriはLibXMLバージョン2.7.7に対してビルドされましたが、動的にロードされています2.7.3

Nokogiri was built against LibXML version 2.7.7, but has dynamically loaded 2.7.3 

がGoogleで検索するには、明示的なLIBを使用して鋸山の再構築を提案してパスを含めるすべては、いくつかのブログの記事を、生み出します。たとえば、次のように私のための問題を解決していない

http://mrflip.github.com/2009-08/nokogiri-hates-libxml2-on-osx.html

しかし、。

nokogiri -vを入力すると、私に与え、この:

私のビルドはOKに行ったことを示唆しているようだ、と鋸山は正しいライブラリのバージョンをロードしている
--- 
warnings: [] 

ruby: 
    engine: mri 
    version: 1.8.7 
    platform: i686-darwin10.4.0 
libxml: 
    loaded: 2.7.7 
    binding: extension 
    compiled: 2.7.7 
nokogiri: 1.4.4 

。では、なぜRailsが文句を言うのですか?

私は実際に答えを見つけました。私はここでそれを分かち合うと思っていました。下の私の答えを見てください。

答えて

14

問題は、他のライブラリが以前のlibxmlバージョンを読み込んでいることです。私は私のGemfileにコメントすることでこれを見つけました。具体的には、私の場合、RMagickはlibxml 2.7.3をロードしていました。 (これは、SVGファイルを読むためのlibxmlを使用しています。)

私はそうのようなのlibxml 2.7.7に対してRMagickを再構築しようとした:

gem install --no-rdoc --no-ri rmagick -- --with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib --with-xslt-include=/opt/local/libxslt --with-xslt-lib=/opt/local/lib 

しかし、RMagickは、それらのフラグを気にしていないようでした。再び2.7.3を使用して構築されました。 (特定のlibxmlバージョンに対してRMagickを構築する方法を知っている人なら、あなたの知識を共有してください)

最終的に、私は途中でまともな解決策を見つけました。私は、これらの2つの宝石のバージョンの競合を解決できない場合、少なくとも新しいバージョンのlibxmlを使用するNokogiriを好むと判断しました。そのために、私はGemfileのどの宝石がNokogiriを使っていて、最初に入れているのかを考え出しました。私は一度これを持っていたのに対し、

ので、:

gem 'sanitize' # Has Nokogiri as dependency 
gem 'rmagick', :require => 'RMagick' 

今すぐ警告がなくなっている、とRMagickはまだ不満をされていません。

gem 'rmagick', :require => 'RMagick' 
gem 'sanitize' # Has Nokogiri as dependency 

私は今、これを持っています。免責事項:私は自分のアプリでSVGを使用しないので、RMagickがlibxml 2.7.7と完全に互換性があることを確認していません。

+0

ありがとうございました!私はRMagickがlibxmlを読み込んでいるとは思っていませんでした。 –

+0

私もありがとう!これは、繰り返し再コンパイルが失敗した後の私の問題を解決しました。 – adriandz

+0

ありがとう〜私は別の宝石で同じ問題を抱えていました。私のGemfileにあるすべてのものをコメントし、それらを一度に1つずつリストアすることが重要でした。私の場合、ヒットメントの宝石は責任がありませんでした。 – Levi

6

また、Bundle.requireの前に、アプリケーションの最初の行にrequire 'nokogiri'を入れることもできます。他の依存関係が何であるか把握する必要はありません。

関連する問題