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


68

我只是发现我无法再做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 ]

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

Answers:


47

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

由于最后一个用于建造静态红宝石,因此它是无害的,并且与问题无关。另外两个建议您在安装红宝石之间已从Macports切换到自制软件

您需要重新安装ruby-2.0.0-p195,它仍然从macports引用旧路径,您可以执行以下操作:

rvm reinstall ruby-2.0.0-p195

您可以获取有关它们运行时使用的ruby和openssl路径的更多详细信息:

rvm --debug osx-ssl-certs update all

2
谢谢-我最终从macports中清除了所有剩余的遗留物,升级了rvm,卸载了ruby-2.0.0-p195,然后重新安装了ruby-2.0.0-p247,现在看来很高兴。
戴夫·萨格

请注意,此处的红宝石版本已过时。
迈克

116

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

brew remove openssl  

接着

brew install openssl

也为我工作(我甚至崩溃并重新安装了rvm)。谢谢。
chesterbr 2014年

5
升级到Mavricks对我来说破坏了openssl。这样就解决了。
TuK 2014年

也为我工作!同样的问题...小牛坏了openssl,您的建议已解决!
詹森·米克

在工作中切换了Macbook,并通过了Mac的迁移软件,它为我打破了openssl。这为我解决了。
2014年

与Mavericks新安装相关的问题似乎可以通过重新安装openssl来解决。就我而言,从时间机器恢复后。

13

尝试运行“捆绑”程序时,尽管路径略有不同,但我也开始收到openssl dylib投诉。我尝试了大多数,还有其他一些东西。我安装了rvm,并保留了一些未完成的安装残留物,尽管我曾尝试过用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

但是最后我可以在我的项目上运行“捆绑包”,并且看起来很正常。


1
sudo brew update && sudo brew upgrade为我修复它。谢谢!
Guillaume Gendre

我最近在rbenv遇到了一个类似的问题,只好去做: rm /Users/Jeff/.rbenv/versions/2.6.3/lib/ruby/2.6.0/x86_64-darwin18/openssl.bundle 然后:rbenv install 2.6.6
Jeff Sholl

7

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

更新

从卡塔琳娜州,您可能会收到类似以下消息:

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

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

brew install openssl.rb

酿造更新后,这个错误对我来说发生了,这解决了问题
muhammed celik

@muhammedcelik我在Xcode 12.1上,macOS Bigsur我只是在尝试为我的项目更新pod,以上解决方案din确实起作用了?
iMinion '20

6

红宝石的所有版本都对我有用,我得到了一个关于红宝石2.6.5的项目。然后我library not found为openssl遇到此错误。为了解决这个问题,我做了

brew update
brew upgrade
brew install openssl

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

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


1
谢谢!绝对有助于解决涉及“ uwsgi”的问题,所以我必须添加brew reinstall uwsgibrew link --overwrite uwsgi,我的完整解决方案在这里:stackoverflow.com/a/59274385/2298002
温室

3

此处的rbenv用户尝试了上述几种解决方案,但是在我卸载所拥有的ruby版本并重新安装之前,没有任何效果。所以:

rbenv uninstall 2.4.3
rbenv install 2.4.3

解决了我的问题,我可以捆绑了。


rbenv install <version>然后选择y就足够了。
MECU

1

就我而言,捆绑时是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

在我的案例中,ReactJS + Node env的更新搞砸了一个Rails项目,并且花费了很多时间后,要么通过rbenv(was 2.5.1 BTW)重新安装ruby版本,还openssl通过homebrew,bundler重新安装(这些都不起作用)重新安装一个简单的方法

brew update && brew upgrade

做到了!

正在运行OSXmojave


-9
sudo brew update && sudo brew upgrade

为我工作


5
切勿使用sudo运行brew!Homebrew不会放弃安装特权,您将为所有构建脚本提供对系统的完全访问权限。
Apolo

5
Brew强烈建议不要与sudo一起使用,因为它会损害系统
Moby Khan

我认为Brew不会让您像以前那样运转sudo,它总是让我停下
温室
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.