未加载库:/opt/local/lib/libssl.1.0.0.dylib(LoadError)

Dav*_*Sag 51 ruby ssl rvm

我刚刚发现我已经不能再进行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.
Run Code Online (Sandbox Code Playgroud)

rvm -v 显示我正在运行最新的RVM(截至今天)

rvm 1.22.15 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我不知道为什么它指的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 ]
Run Code Online (Sandbox Code Playgroud)

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

小智 111

卸载openssl并重新安装它对我有用.

brew remove openssl  
Run Code Online (Sandbox Code Playgroud)

然后

brew install openssl
Run Code Online (Sandbox Code Playgroud)

  • 升级到Mavricks为我打破了openssl.这解决了它. (4认同)
  • @ Mr.T`brew重新安装openssl`为我工作. (3认同)

mpa*_*pis 42

你的问题中提到三条路径/opt/local,/usr/local以及/etc/openssl他们属于MacPorts的,自制SM框架分别.

由于最后一个用于构建静态红宝石,它是无害的,与问题无关.另外两个表明你已经在安装红宝石之间从macports切换到自制软件.

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

rvm reinstall ruby-2.0.0-p195
Run Code Online (Sandbox Code Playgroud)

您可以获得有关他们使用的rubies和openssl路径的更多详细信息:

rvm --debug osx-ssl-certs update all
Run Code Online (Sandbox Code Playgroud)

  • 谢谢 - 我最终清除了所有挂在 macports 上的遗留物,升级了 rvm,卸载了 ruby​​-2.0.0-p195 并重新安装了 ruby​​-2.0.0-p247,现在看起来很开心。 (2认同)

dma*_*man 9

试图运行'捆绑'我也开始得到openssl dylib投诉,虽然路径略有不同.我尝试了大部分这些以及其他一些事情.我有rvm,还有一些破碎的fink安装残余,虽然我试着用一段时间后用brew替换它.很多次,我得到了

Library not loaded: /sw/lib/libssl.1.0.0.dylib
Run Code Online (Sandbox Code Playgroud)

然而,尝试重新安装openssl与brew总是产生

sudo brew link openssl
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.
Run Code Online (Sandbox Code Playgroud)

要么

Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Run Code Online (Sandbox Code Playgroud)

所以我应该做的很混乱.经过多次试验,最终似乎有所帮助包括:

$ rm /Users/dan/.rvm/rubies/default/lib/ruby/1.9.1/x86_64-darwin11.4.0/openssl.bundle
Run Code Online (Sandbox Code Playgroud)

它引用了不存在的/sw/lib/libssl.1.0.0.dylib文件.然后

$ sudo brew update && sudo brew upgrade
$ rvm reset
Run Code Online (Sandbox Code Playgroud)

把我的版本从1.9.1提升到了

$ ruby --version
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
Run Code Online (Sandbox Code Playgroud)

那时我不得不重新安装bundler(?)

$ gem install bundler
Run Code Online (Sandbox Code Playgroud)

但最后我可以在我的项目上运行'捆绑',它似乎表现得很好.

  • 完善!!brew链接openssl工作 (2认同)

Cri*_*lzu 8

Homebrew 将其 Openssl 版本更改为 1.1 天前(Homebrew/homebrew-core@0349a7c 25 和 Homebrew/homebrew-core@b4b9c1c 10)。我们可以将 Openssl 降级到旧版本以在等待新的重建来临时解决此问题(或手动执行):

所以我是这样解决的:

brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb
Run Code Online (Sandbox Code Playgroud)

更新

从 catalina,您可能会收到如下消息:

错误:从 GitHub 提交 URL 调用 openssl 的安装被禁用!

在这种情况下,我建议您转到 URL 并将内容下载到一个文件中(名称为 openssl.rb)。然后你可以这样做:

brew install openssl.rb
Run Code Online (Sandbox Code Playgroud)


gsu*_*umk 6

所有版本的 ruby​​ 都对我有用,我在 ruby​​ 2.6.5 上有一个项目。然后我收到library not found了openssl的这个错误。为了解决这个问题,我做了

brew update
brew upgrade
brew install openssl
Run Code Online (Sandbox Code Playgroud)

然后所有其他版本都停止工作,因为它library not found用于开放 ssl。由于我将 chruby 用于 ruby​​ 版本管理器,因此我删除了版本文件夹并重新安装它们并且它可以工作。

Tl; dr更新和升级brew,安装openssl并重新安装ruby版本