我通过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卡塔琳娜,如果有关系的话。


当前回答

我在我的系统上安装了openssl1.1,但是rails以某种方式使用了旧的引用,即/usr/local/opt/openssl/lib/libssl.1.0.0。dylib (LoadError),但这在我的Mojave 14上不存在。

我尝试了下面的解决方案,但运气不佳:

openssl 1.0.2t (Error: Unknown command: switch) reintalling openssl 将openssl版本降级至1.0 重新安装rvm和ruby

最后,解决方案如下:

cp /usr/local/opt/openssl/lib/libssl.1.1.dylib /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
cp /usr/local/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib

只需复制新的openssl链接到旧的

OR

创建如下的符号链接:

ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl@1.0

其他回答

这可能是一个问题,因为有旧版本的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

尝试使用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)。

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

brew update && brew upgrade

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

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

我可以通过brew升级Python 3来解决这个问题

Brew升级python@3