4

最近、Mountain Lion をクリーン インストールしました。Nokogiri をインストールした後、Rails コンソールの起動時にエラーが発生しました。 WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8

ここで SO の他の質問を見て、すべてをアンインストールして再試行しましたが、Nokogiri Web サイトのインストール手順が古くなっていることに気付きました: http://nokogiri.org/tutorials/installing_nokogiri.html

「brew install libxml2 libxslt」により、実際には libxml2 2.8.0 がインストールされ、2.7.8 を参照する手順をさらに読み進めると、次のようになります。

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                    --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                    --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                    --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                    --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

(libxml2/2.7.8 に注意)

だから私は再びアンインストールし、再インストールします:(libxml2/2.8.0)

sudo 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 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

IRB では問題なく動作しているように見えますが、Rails C では動作しません。

WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8

bundle update を実行してみましたが、同じです。

どうすればこれを修正できますか?

4

3 に答える 3

2

最初に実行gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib ...したとき、「Nokogiri は LibXML バージョン 2.8.0 に対してビルドされました」とまだ表示されていましたか? まるでスイッチに注意を払っていないかのように見えます。

とにかく、問題はあなたのコンピュータが述べているとおりです。実行時に使用する libxml*.so は古いバージョンです。man ldconfig古いlibxmlライブラリの標準ディレクトリを調べてください。新しいものをその隣に置いて、シンボリックリンクを指すだけで十分かもしれません。

免責事項: 私は osxer ではありません。購入者は注意してください。

于 2012-08-03T16:53:23.920 に答える
1

新しいバージョンの libxml2 を緊急に使用する必要がない限り、OS X Mountain Lion で配布されている標準バージョンで問題ありません。利用した

brew uninstall libxml2
brew uninstall libxslt

gem uninstall nokogiri
gem install nokogiri

良い効果に。ここで推奨されている Ruby 1.9.3 の再インストールは必要ありませんでした。もちろん、libxslt をアンインストールする必要があるのは、(私のように) 以前にインストールしたことがある場合のみです。

ライブラリの 1 つをアンインストールする場合は、

brew missing

誤って依存関係を削除したかどうか。

于 2013-01-09T17:48:46.897 に答える