未加载库:/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 <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [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 ] 

任何想法如何解决这一问题?

你的问题提到了三个path/opt/local/usr/local/etc/openssl它们分别属于MacportsHomebrewSM Framework

由于最后一个是用来build立静态ruby,这是无耻的,并没有涉及到这个问题。 另外两个build议您在安装ruby之间从macports切换到自制软件

你需要重新安装ruby-2.0.0-p195 ,它仍然是macports的旧path,你可以这样做:

 rvm reinstall ruby-2.0.0-p195 

你可以得到更多关于他们使用的rubies和opensslpath的细节:

 rvm --debug osx-ssl-certs update all 

卸载openssl并重新安装它为我工作。

 brew remove openssl 

接着

 brew install openssl 

试图运行“捆绑”我也开始得到openssl dylib的投诉,虽然有一点不同的path。 我尝试了其中的大部分,还有一些其他的东西。 我有rvm,还有一些fink install的碎片,尽pipe我试着用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 

但最后我可以在我的项目上运行“捆绑”,似乎performance得很好。

在我的情况下,捆绑时是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 

捆绑成功;)

 sudo brew update && sudo brew upgrade 

为我工作