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


当前回答

如果你没有家酿咖啡或者不知道是什么

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

或者如果你已经安装了Homebrew

brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

这在Mac 10.15上适用

其他回答

对于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

上述方案对我不起作用。

首先运行酿造医生。 如果你看到

Error: unknown or unsupported macOS version: :mountain_lion

还有一些过时的包需要移除,我的就是 mongodb。

它可以是python@2、node@6或其他包。

卸载那些软件包 然后运行brew doctor来验证是否一切正常。 然后你可以重新安装这些包后再次brew更新&& brew升级。

在搜索这个错误的第一行后,我发现了这个问题:

dyld: Library not loaded: /opt/local/lib/libcrypto.1.0.0.dylib
  Referenced from: /opt/local/lib/libgssapi_krb5.2.2.dylib
  Reason: image not found
Abort trap: 6

我看到的不是使用vapor,而是在升级一些包后使用ssh、scp和git的结果。

我认为像@Smokie和其他人建议的那样降级大多数包是不明智的(特别是与安全相关的包)。

所以我概括了@ michalchicon发布的关于用install_name_tool解决问题的答案,这似乎已经解决了我的问题(至少现在用ssh和scp;我认为如果问题再次出现在另一个可执行文件中,我将能够使用这个解决方案的变体)。

因为它是不存在的/opt/local/lib/libcrypt .1.0.0。因为我有一个/opt/local/lib/libcrypt .1.1。由于SSH和SCP正在引用/opt/local/lib/libgssapi_krb5.2.2。Dylib试图找到/opt/local/lib/libcrypt .1.0.0。dylib,我只是像这样使用install_name_tool:

$ sudo install_name_tool -change /opt/local/lib/libcrypto.1.0.0.dylib\
/opt/local/lib/libcrypto.1.1.dylib\
/opt/local/lib/libgssapi_krb5.2.2.dylib

然后再次尝试运行ssh。它再次失败了,但这次出现了不同的错误:

dyld: Library not loaded: /opt/local/lib/libcrypto.1.0.0.dylib
  Referenced from: /opt/local/lib/libkrb5.3.3.dylib
  Reason: image not found
Abort trap: 6

于是我就这样做了:

$ sudo install_name_tool -change /opt/local/lib/libcrypto.1.0.0.dylib\
/opt/local/lib/libcrypto.1.1.dylib\
/opt/local/lib/libkrb5.3.3.dylib

再次尝试SSH。它再次失败了,但又出现了另一个错误:

dyld: Library not loaded: /opt/local/lib/libcrypto.1.0.0.dylib
  Referenced from: /opt/local/lib/libk5crypto.3.1.dylib
  Reason: image not found
Abort trap: 6

于是我就这样做了:

$ sudo install_name_tool -change /opt/local/lib/libcrypto.1.0.0.dylib\
/opt/local/lib/libcrypto.1.1.dylib\
/opt/local/lib/libk5crypto.3.1.dylib

再次尝试SSH。它再次失败了,但又出现了另一个错误:

dyld: Library not loaded: /opt/local/lib/libcrypto.1.0.0.dylib
  Referenced from: /opt/local/lib/libkrb5support.1.1.dylib
  Reason: image not found
Abort trap: 6

于是我就这样做了:

$ sudo install_name_tool -change /opt/local/lib/libcrypto.1.0.0.dylib\
/opt/local/lib/libcrypto.1.1.dylib\
/opt/local/lib/libkrb5support.1.1.dylib

再次尝试SSH。最后,ssh、scp和git恢复正常工作。

感谢@ michalchicon的精彩回答,让我能够在不降级openssl的情况下继续使用ssh !

我花了很多时间尝试以上所有方法,但似乎都没有解决问题。然后我重新安装ruby, 2分钟后问题完全消失了。

我希望这能节省一些时间。

如果你没有家酿咖啡或者不知道是什么

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

或者如果你已经安装了Homebrew

brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

这在Mac 10.15上适用