dyld:库未加载:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib

Cro*_*nay 3 macos homebrew openssl swift vapor

我通过自制软件安装了蒸气,然后立即想通过执行跳入项目,vapor new Hello但是在终端中返回了以下消息:

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/bin/vapor
Reason: image not found
zsh: abort      vapor new Hello
Run Code Online (Sandbox Code Playgroud)

我尝试了一些方法来解决此问题,例如通过brew卸载并重新安装openssl,但这没有用。还尝试了我在互联网上找到的东西,但是没有任何效果。我认为这仅与蒸气有关,而仅与1.0.0版一起使用,而与1.1.1版本无关,这就是我所拥有的。我想我需要降级到1.0.0,但是我该怎么做呢?如果重要的话,我在MacOS Catalina上。提前致谢。

Smo*_*kie 951

更新:截至2020 年 12 月及以后,brew switch不起作用,因此请使用 @angabriel 的另一个答案:

brew install rbenv/tap/openssl@1.0
ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl
Run Code Online (Sandbox Code Playgroud)

原答案: 切换到较旧的 openssl 包

brew switch openssl 1.0.2s
Run Code Online (Sandbox Code Playgroud)

或者,根据您的确切系统配置,您可能需要切换到不同的版本。检查ls -al /usr/local/Cellar/openssl要切换到的版本号的输出。

brew switch openssl 1.0.2q
# or
brew switch openssl 1.0.2r
# or 
brew switch openssl 1.0.2s
# or
brew switch openssl 1.0.2t
# etc...
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的解决方案,也是最简单的。然而 Homebrew 将删除已弃用的软件包。不确定该解决方案何时停止工作 (34认同)
  • “酿造开关”已被禁用。那又怎样呢? (29认同)
  • 如果我的 Mac 上没有安装任何“旧”版本,而只安装了 1.1.1g,我该怎么办? (25认同)
  • 当运行“ls -al /usr/local/Cellar/openssl”时,有人得到“ls:/usr/local/Cellar/openssl:没有这样的文件或目录”吗? (21认同)
  • 这对我来说只需稍微改变一下最后一个字母“r”brew switch openssl 1.0.2r on MacOS Catalina (14认同)
  • 最佳解决方案。在我的例子中,brew 开关 openssl 1.0.2t (8认同)
  • @deyvw:查看下面的答案: ```brew install rbenv/tap/openssl@1.0``` | ```ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl``` (7认同)
  • 我的(这个)答案已经过时了,“brew switch”被禁用,openssl 1.* 现在不会开箱即用地安装。我建议将正确答案移至下面的答案(@angabiel) (5认同)
  • @Leopathu你能详细说明为什么这应该是批准的答案而不是我批准的答案吗?如果这是更好的答案,我仍然可以批准它。 (3认同)
  • 我刚刚开始遇到brew 问题;来到这里,对行为有一个整体的了解……我是唯一一个认为brew正在减少作为一个有价值的项目的人吗?如果它删除了已弃用的内容,并且我使用的各种系统的依赖项只有几年的历史,并且依赖项被删除......如果要解决问题,解决方案需要手动投资来寻找来源并制作......有点使得成为依赖管理器的价值变得毫无意义。我需要在社区论坛上讨论这个问题。 (3认同)
  • 谢谢你,我无法想象你为我节省了多少时间。将我的 Mac 升级到 Catalina 后,我的 openssl 崩溃了。 (2认同)

ang*_*iel 215

2020 年 12 月这个帖子有很多答案,但没有一个对我有用。
最佳答案还建议降级:

brew switch ... 投掷 Calling brew switch is disabled!

这对我有用:

brew install rbenv/tap/openssl@1.0
ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl
Run Code Online (Sandbox Code Playgroud)

在这里找到:https : //github.com/kelaberetiv/TagUI/issues/86
(我需要在 OSX 10.13.x 上运行旧的 mongodb 3.4)

  • `brew install rbenv/tap/openssl@1.0` 花了很长时间!但最终找到了一个对我使用 macOS Big Sur 有效的解决方案,感谢@angabriel! (17认同)
  • 哇,人们应该寻找这个,这是唯一对我有帮助的!! (11认同)
  • 这个解决方案对我使用 macOS Big Sur 有效,谢谢 (6认同)
  • 在 macOS Mojave 上工作仅供参考,谢谢您的解决方法! (4认同)
  • 这对我在 High Sierra 上的 `/usr/local/Cellar/mysql/5.7.20/bin/mysqld` 有效 (3认同)

小智 98

brew switch openssl 1.0.2s

在“macOS Mojave”、“版本 10.14.6”上为我工作。

  • `brew 开关 openssl 1.0.2p` (2认同)

小智 76

首先,通过以下方式列出已安装的 openssl 版本(或其他程序)的详细信息:

$ls -al /usr/local/Cellar/openssl*
/usr/local/Cellar/openssl:
total 0
drwxr-xr-x    3 mba  staff    96 Nov 30 17:18 .
drwxrwxr-x  170 mba  admin  5440 Apr  8 02:03 ..
drwxr-xr-x   13 mba  staff   416 Nov 21 03:13 1.0.2t

/usr/local/Cellar/openssl@1.1:
total 0
drwxr-xr-x    4 mba  staff   128 Apr  7 18:35 .
drwxrwxr-x  170 mba  admin  5440 Apr  8 02:03 ..
drwxr-xr-x   14 mba  staff   448 Oct  1  2019 1.1.1d
drwxr-xr-x   14 mba  staff   448 Apr  7 18:35 1.1.1f
Run Code Online (Sandbox Code Playgroud)

如上输出,我的 mac 中只有一个“正确”版本的“openssl”。然后,切换到它:

$brew switch openssl 1.0.2t                                 
Cleaning /usr/local/Cellar/openssl/1.0.2t
Opt link created for /usr/local/Cellar/openssl/1.0.2t
Run Code Online (Sandbox Code Playgroud)

  • “只有一个“正确”的版本”——这是什么意思?你怎么看? (7认同)
  • 非常感谢。什么表明 1.0.2t 是“正确”的版本?我有一个 1.0.2r、一个 1.1.1d 和一个 1.1.1f。 (4认同)

Kir*_*ich 57

对于 MacOS 10.15 Catalina 尝试安装以前的 openssl:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
Run Code Online (Sandbox Code Playgroud)

  • 错误:从任意 URL 调用 openssl 公式文件的非校验下载已被禁用!使用“brew extract”或“brew create”和“brew tap-new”在 GitHub 上的点击中创建公式文件。如果报告此问题,请在(不是 Homebrew/brew 或 Homebrew/core)进行报告:https://github.com/tebelorg/Tump/issues/new (4认同)
  • 要安装该 GitHub 链接,我们需要降级brew。```cd /usr/local/Homebrew/``` 更改为版本 2.3.0 ```git checkout 2.3.0``` 然后安装 ```HOMEBREW_NO_AUTO_UPDATE=1 brew install https://github.com/tebelorg /Tump/releases/download/v1.0.0/openssl.rb``` https://github.com/kelaberetiv/TagUI/issues/635#issuecomment-699482920 (2认同)

小智 52

brew switch openssl 1.0.2q
Run Code Online (Sandbox Code Playgroud)

MacOs Catalina 版本 10.15 对我有用


小智 29

我有同样的问题。我通过运行以下 2 个命令解决了它:

brew uninstall vapor
brew install vapor/tap/vapor
Run Code Online (Sandbox Code Playgroud)

有效。


Pri*_*kin 26

brew switch openssl 1.0.2r
Run Code Online (Sandbox Code Playgroud)

它对我有用,macOS Mojave,版本 10.14.6


小智 25

brew switch openssl 1.0.2t
Run Code Online (Sandbox Code Playgroud)

卡特琳娜这没关系。


abb*_*ood 21

这是唯一对我有用的东西(OSX Catalina 10.15.7)

1-下载文件:

wget https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
Run Code Online (Sandbox Code Playgroud)

2 - 使用下载的文件运行 brew:

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


Ser*_*kyy 18

这在我的 mac 上对我有用

brew switch openssl 1.0.2n


ipa*_*tch 16

我会投入 2 美分,因为我没有看到解决我问题的答案。

我的特定用例涉及使用 ruby​​ 2.6.3 和 postgres 10.x 系列启动遗留 Rails 应用程序。

  • 我正在运行 macOS 10.13.x high sierra
  • 我几乎每天都更新 brew,我拥有的 openssl 版本是1.1

几个月没有启动 rails 应用程序,今天需要对应用程序进行一些维护,并且得到了一些可爱的东西?下面的错误信息,

9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /usr/local/opt/postgresql/lib/libpq.5.dylib

echo "and"

9): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (LoadError)
  Referenced from: /usr/local/opt/postgresql/lib/libpq.5.dylib
  Reason: image not found -
Run Code Online (Sandbox Code Playgroud)

解决我的特定问题的最快方法是从当前创建一个 smylink,

libssl.1.1.dylib
libcrypto.1.1.dylib
Run Code Online (Sandbox Code Playgroud)

创建 2 个符号链接

cd /usr/local/opt/openssl/lib/
ln -sf libcrypto.1.1.dylib libcrypto.1.0.0.dylib
ln -sf libssl.1.1.dylib libssl.1.0.0.dylib
Run Code Online (Sandbox Code Playgroud)

路径版本号显然会随着时间的推移而改变,所以在创建上述符号链接时要注意路径版本号。创建符号链接后,我可以启动我的 rails 应用程序。

干杯

把这个留在这里给未来的我


Mun*_*osh 13

openssl@1.1如果有人在 MacOS Big Sur 中遇到问题,(即Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib,这是为我解决的问题 -

brew install openssl@1.1
ln -s $(brew --prefix)/opt/openssl/lib/libssl.1.1.dylib /usr/local/lib/
ln -s $(brew --prefix)/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/lib
Run Code Online (Sandbox Code Playgroud)

  • 在此通知新手,这不适用于带有“brew”的 arm64 版本的 M1 (3认同)

Chi*_*rav 11

brew reinstall openssl
Run Code Online (Sandbox Code Playgroud)

它会自动更新与 openssl 兼容的 mysql 服务器。我尝试了很多东西,但只有这对我有用。


Lui*_*uez 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)

这是唯一对我有用的解决方案。


Mic*_*hon 9

如果您已经尝试重新安装蒸气,则不太可能起作用:

尝试更新和升级brew:

brew update && brew upgrade
Run Code Online (Sandbox Code Playgroud)

这将需要一段时间,因为它将更新您的所有依赖项。然后再次安装openssl:

brew install openssl
Run Code Online (Sandbox Code Playgroud)

或者尝试以下方法:

brew reinstall openssl
Run Code Online (Sandbox Code Playgroud)

如果您已经尝试重新安装蒸气,那么这可以工作:

如果以上这些技巧均无效,请尝试使用install_name_tool

sudo install_name_tool -change /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.1.dylib $(which vapor)
sudo install_name_tool -change /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.1.dylib $(which vapor)
Run Code Online (Sandbox Code Playgroud)

就我而言,它在我使用时开始工作install_name_tool。参数的顺序如下:旧值(不正确),然后新值(您有openssl)和蒸气路径(可以通过轻松获得)$(which vapor)

  • BREW更新&&BREW升级将升级所有软件包,它会导致**巨大**问题 (21认同)
  • 下层方法为我解决了这个问题,非常感谢! (2认同)
  • 是的,请从答案中删除“brew升级”@michal-cichon (2认同)
  • @Zheden Vapor 是一个用 Swift 实现的 Web 框架。请查看该线程中的原始问题。如果您不知道 Vapor 是什么,那么此帖子可能无法回答您的问题。如果您使用 Homebrew 来管理依赖项,请尝试 Smokie 的答案。 (2认同)

B.K*_*B.K 9

我有一个类似的问题,运行下面的命令为我修复了错误:

brew update && brew upgrade
Run Code Online (Sandbox Code Playgroud)


小智 8

提出brew update && brew upgrade作为解决方案不是一个好的答案,并且由于在大多数情况下由于执行此错误而出现此错误......

切换到您只使用的先前版本:brew switch openssl XXX就是这样。


小智 7

一个简单的 brew update && brew upgrade 对我有用


Afo*_*umi 7

Mehn 这是我在 2020 年 7 月 7 日面对此错误 4 小时后。这是唯一对我有用的命令:

brew update && brew upgrade

  • 这在 2020 年 8 月 4 日对我有用。请注意,最初接受的答案在 2019 年 7 月 16 日对我有用,但今天不起作用。 (6认同)

小智 7

这对我有用:

brew uninstall openssl
brew tap-new $USER/old-openssl
brew extract --version=1.0.2t openssl $USER/old-openssl
brew install openssl@1.0.2t
Run Code Online (Sandbox Code Playgroud)

来源:https : //github.com/kelaberetiv/TagUI/issues/635#issuecomment-560138773

  • 这是唯一对我有用的解决方案。此外,我必须创建一个链接,以便 Vapor 找到它:`ln -s /usr/local/Cellar/openssl@1.0.2t/1.0.2t /usr/local/opt/openssl` (4认同)

Nin*_*Dev 6

如果您在 MacOS Catalina 10.15 上使用 ruby​​-2.7.0

$ brew reinstall openssl@1.1
Run Code Online (Sandbox Code Playgroud)

或者

$ rvm reinstall 2.7.0
$ brew tap --repair
$ brew doctor
Run Code Online (Sandbox Code Playgroud)


小智 6

在我的 Catalina 安装中尝试通过 Alfred 使用 LastPass CLI 时遇到了这个问题。

brew update && brew upgrade 解决了这个问题。

这是比降级 openssl 更好的选择。


小智 5

这可能是一个问题,因为旧版本的 brew 和安装的 byobu 需要新的依赖来解决这个问题,运行以下命令

brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
Run Code Online (Sandbox Code Playgroud)