0

しばらく前にMacportsを削除したので、今はHomebrewを使用しています。今、私はマルチカールに依存するtyphoeusrubygemを使おうとしています。

ルビースクリプトを実行しようとすると、次のエラーメッセージが表示されます。

/Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/ffi-1.0.11/lib/ffi/library.rb:121:in `block in ffi_lib': Could not open library 'libcurl': dlopen(libcurl, 10): image not found. (LoadError) Could not open library 'libcurl.dylib': dlopen(libcurl.dylib, 10): Library not loaded: /opt/local/lib/libidn.11.dylib   Referenced from: /usr/local/lib/libcurl.dylib   Reason: image not found   from /Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/ffi-1.0.11/lib/ffi/library.rb:88:in `map'     from /Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/ffi-1.0.11/lib/ffi/library.rb:88:in `ffi_lib'     from /Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/typhoeus-0.4.2/lib/typhoeus/curl.rb:405:in `<module:Curl>'    from /Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/typhoeus-0.4.2/lib/typhoeus/curl.rb:6:in `<module:Typhoeus>'  from /Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/typhoeus-0.4.2/lib/typhoeus/curl.rb:5:in `<top (required)>'   from /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'  from /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'  from /Users/myusername/.rvm/gems/ruby-1.9.3-p125/gems/typhoeus-0.4.2/lib/typhoeus.rb:5:in `<top (required)>'    from /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'  from /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'    from /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'  from app.rb:3:in `<main>'

明らかに、いくつかのファイルが欠落しています。

実行すると、次のよう$ otool -L /usr/local/bin/curlになります。

/usr/local/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 7.0.0)
/opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current version 18.5.0)
/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP (compatibility version 1.0.0, current version 2.2.0)
/opt/local/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/opt/local/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)

ここでの問題は、私のフォルダ/opt/local/が存在しないことです。

  • 欠落しているリンクを修正するにはどうすればよいですか?
  • 不足しているファイルはどこで入手できますか?(libidn.11.dylib、libintl.8.dylib、libssl.1.0.0.dylib、libcrypto.1.0.0.dylib、libz.1.dylib)?

追加情報:

  • 私はruby1.9.3とMacOSX10.8を使用しています
4

1 に答える 1

1

MacPorts とそのcurl.

まだ行っていない場合は、http://guide.macports.org/chunked/installing.macports.uninstalling.htmlのガイドに従うことをお勧めします。具体的には次のとおりです。

$ sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports

その後、 でカールを取り除きますsudo rm /usr/local/bin/curl

curlおよびlibcurlOS X には既に含まれてい/usr/local/binますが、 の前に PATH に含まれています/usr/bin。そのため、ある時点curlで MacPorts の新しいバージョンをインストールし、それが残っている可能性があります。

curlしたがって、 内のものを完全にパージする必要があり/usr/localます。これは少し難しいかもしれません。Homebrew で多くのインストールを行っていない場合は、Homebrew を/usr/local再インストールする前に、Homebrew を完全にパージして手動でクリーンアップすることをお勧めします。

最後に、curllibcurl に依存していた gem を削除して、再インストールする必要があります。

MacPorts をアンインストールする前に MacPorts と一緒にアンインストールすれば、おそらくこれはすべて回避できたはずですcurlが、私自身は MacPorts を使用したことがないので、100% ではありません。

于 2012-08-01T14:37:52.070 に答える