我通过homebrew安装了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

我尝试了一些方法来解决这个问题,比如通过brew卸载并重新安装openssl,但这并不奏效。我还尝试了一些我在网上找到的东西,但没有工作。我认为这与蒸汽只适用于1.0.0版本有关,而不是1.1.1版本,这就是我所拥有的。我想我需要降级到1.0.0,但我是怎么做到的?我在用MacOS卡塔琳娜,如果有关系的话。


当前回答

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

$ brew reinstall openssl@1.1

or

$ rvm reinstall 2.7.0
$ brew tap --repair
$ brew doctor

其他回答

建议brew update && brew upgrade作为解决方案不是一个很好的答案,因为这个错误出现在大多数情况下,由于执行这个…

切换到您只使用的上一个版本:brew Switch openssl XXX,就是这样。

一个简单的brew更新&& brew升级对我来说很管用

酿造openssl 1.0.2s开关

为我工作过“macOS Mojave”,“10.14.6版本”。

我的建议是永远不要为了让构建工作而降低openssl lib版本。最好下载所需库的源代码,并根据本地主机上的openssl版本构建它。

我在经历同样的问题时看到了这篇文章,但不愿意降低openssl版本。最后把源代码和建立应用程序,它工作。我不知道为什么开发人员在他们的盒子上有他们的旧版本的openssl,他们建立dist包并针对这些旧版本发布。

尝试使用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/libcrypto.1.1.dylib $(which vapor)

在我的情况下,它开始工作时,我使用install_name_tool。参数的顺序如下:旧值(不正确),然后是新值(其中包含openssl),最后是vapor的路径(可以通过$轻松获得(其中包含vapor)。