35

私は自分の知識を超えて一歩踏み出しすぎたのかもしれません。Homebrewをインストールしましたが、 MacPortsがインストールされているという警告が表示され続けた後、それをアンインストールしました。しかし今、私の rspec テストは実行されません。

これらは私が得るエラーです:

/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri.rb:13:in `require': dlopen(/Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /opt/local/lib/libiconv.2.dylib (LoadError)
  Referenced from: /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle
  Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 - /Users/mark/.rvm/gems/ruby-1.9.2-p180/gems/nokogiri-1.4.4/lib/nokogiri/nokogiri.bundle
.....
.....

Homebrew から libiconv をインストールしましたが、問題は解決しませんでした。libiconv のバージョン番号について不平を言っています。これが問題ですか?

ここで何が起こっていて、何をする必要がありますか?

4

4 に答える 4

83

興味のある人のために、物事が再び機能するようになりました。nokogiri gem を削除して再インストールしたところ、すべてが再び機能しているようです。

于 2011-04-25T22:22:00.060 に答える
15

通常、この問題は適切な libiconv が見つからないことが原因で発生します。私の問題を解決する方法は次のとおりです。

の出力を確認しますotool -L /usr/lib/libiconv.2.dylib。次の出力が得られました。

/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

次に、Homebrew で libiconv をインストールし、brew install libiconvを使用してインストールされた場所を表示しbrew list libiconvます。次の出力が得られました。

/usr/local/Cellar/libiconv/1.14/bin/iconv
/usr/local/Cellar/libiconv/1.14/include/ (3 files)
/usr/local/Cellar/libiconv/1.14/lib/libcharset.1.dylib
/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib
/usr/local/Cellar/libiconv/1.14/lib/ (3 other files)
/usr/local/Cellar/libiconv/1.14/share/doc/ (6 files)
/usr/local/Cellar/libiconv/1.14/share/man/ (6 files)

libiconv は にインストールされ/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylibます。次に、新しくインストールした libiconv のバージョンを確認する otool -L /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylibと、次の出力が得られました。

/usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib:
/usr/local/opt/libiconv/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

バージョンは正しいので、このライブラリをRubyで使用できるようにする必要があります。シンボル リンクを作成するのが簡単な解決策です。

sudo ln -s /usr/local/opt/libiconv/lib/libiconv.2.dylib /opt/local/lib/libiconv.2.dylib
于 2012-12-05T03:18:57.403 に答える
0

FWIW、私は同じ問題に遭遇しました.gemをベンダー化する場合は、問題のあるgemをベンダー/ルビーから削除する必要があります.gemのアンインストールと再インストールは必ずしも効率的ではありません. 新規インストールを実行している場合でも、バンドラーは宝石とそれぞれのライブラリのキャッシュの残りを残していると思います。

于 2014-09-30T14:39:40.353 に答える
0

再び機能させるには、nokogiri に加えて libxml-ruby を再インストールする必要がありました。

于 2012-09-11T15:13:23.113 に答える