web-dev-qa-db-ja.com

ライブラリがロードされていません:/opt/local/lib/libssl.1.0.0.dylib(LoadError)

もはやgem Push …できないことを発見し、掘り下げてRVM SSL証明書を更新する必要に至りました。

私はrvm osx-ssl-certs status allを実行しましたが、それは私に与えました:

/Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/site_Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': dlopen(/Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle, 9): Library not loaded: /opt/local/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle
  Reason: image not found - /Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle
    from /Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/site_Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/2.0.0/openssl.rb:17:in `<top (required)>'
    from /Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/site_Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /Users/davesag/.rvm/rubies/Ruby-2.0.0-p195/lib/Ruby/site_Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
Certificates for /usr/local/etc/openssl/cert.pem: Up to date.
Certificates for : Old.
Certificates for /etc/openssl/cert.pem: Up to date.

rvm -vは、最新のRVMを実行していることを示しています(今日現在)

rvm 1.22.15 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

奇妙なことに、なぜRuby-2.0.0-p195を参照しているのかわかりませんが、rvm list

rvm rubies

   Ruby-1.9.3-p392 [ x86_64 ]
   Ruby-2.0.0-p195 [ x86_64 ]
=* Ruby-2.0.0-p247 [ x86_64 ]

これを修正する方法はありますか?

47
Dave Sag

あなたの質問には3つのパスがあります/opt/local/usr/localおよび/etc/opensslこれらは、それぞれMacportsHomebrewおよびSM Frameworkに属します。

最後のものは静的ルビーの作成に使用されるため、無害であり、問​​題とは関係ありません。他の2つは、ルビーのインストールの間にmacportsからhomebrewに切り替えたことを示唆しています。

再インストールする必要がありますRuby-2.0.0-p195は、まだmacportsからの古いパスを参照していますが、次のようにして実行できます。

rvm reinstall Ruby-2.0.0-p195

実行に使用されるルビーとopensslパスの詳細を取得できます。

rvm --debug osx-ssl-certs update all
41
mpapis

Opensslをアンインストールして再インストールするとうまくいきました。

brew remove openssl  

その後

brew install openssl
112
Pradeep S

「バンドル」を実行しようとすると、パスが少し異なりますが、openssl dylibの苦情も出始めました。私はこれらのほとんどと他のいくつかを試しました。私はrvmとfinkインストールの壊れた残骸を持っていましたが、しばらく前にbrewに置き換えようとしました。何回も

Library not loaded: /sw/lib/libssl.1.0.0.dylib

ただし、常に生成されたbrewでopensslを再インストールしようとしています

Sudo brew link openssl
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.

または

Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

だから私がすべきことはかなり混乱していた。試行錯誤の末、最終的には次のように思われました。

$ rm /Users/dan/.rvm/rubies/default/lib/Ruby/1.9.1/x86_64-darwin11.4.0/openssl.bundle

存在しない/sw/lib/libssl.1.0.0.dylibファイルへの参照がありました。それから

$ Sudo brew update && Sudo brew upgrade
$ rvm reset

バージョンを1.9.1から

$ Ruby --version
Ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

その時点でバンドラーを再インストールする必要がありました(?)

$ gem install bundler

しかし、最終的にプロジェクトで「バンドル」を実行でき、動作するように見えました。

8
dman

私の場合、バンドル時のRubyバージョン:

やった:

rvm list

出力:

   Ruby-1.9.3-p448 [ x86_64 ]
   Ruby-2.0.0-p247 [ x86_64 ]
   Ruby-2.0.0-p353 [ x86_64 ]
   Ruby-2.0.0-p451 [ x86_64 ]

そして、Ruby-2.0.0-p451に変更しました:

rvm use Ruby-2.0.0-p451

そして:

bundle

バンドルは正常に完了しました;)

1
luigi7up