我通过自制软件安装了蒸汽,然后立即想通过执行 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 Catalina 上。
/usr/local/bin/wget
(由 plenv install-cpanm
暴露)
更新: 自 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
原始答案:切换到较旧的 openssl 包
brew switch openssl 1.0.2s
或者,根据您的确切系统配置,您可能需要切换到不同的版本。检查 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...
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
在这里找到: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!
/usr/local/Cellar/mysql/5.7.20/bin/mysqld
有效
brew switch openssl 1.0.2s
在“macOS Mojave”、“10.14.6 版”上为我工作。
brew switch openssl 1.0.2p
brew uninstall --ignore-dependencies openssl brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/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 的位置)和蒸汽路径(可以通过 $(which vapor)
轻松获得)。
brew upgrade
@michal-cichon
首先,通过以下方式列出已安装的 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
如上输出,我的 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
there are only one "right" versions
- 这是什么意思?你怎么讲?
对于 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
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
github.com/kelaberetiv/TagUI/issues/635#issuecomment-699482920
brew switch openssl 1.0.2q
MacOs Catalina 10.15 版为我工作
我有同样的问题。我通过运行这两个命令解决了这个问题:
brew uninstall vapor
brew install vapor/tap/vapor
有效。
brew upgrade vapor
brew switch openssl 1.0.2r
它对我有用,macOS Mojave,版本 10.14.6
brew switch openssl 1.0.2t
卡塔利娜这没关系。
brew switch openssl 1.0.2j
这是唯一对我有用的东西(OSX Catalina 10.15.7)
1-下载文件:
wget https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
2 - 使用下载的文件运行 brew:
brew install openssl.rb
brew tap cartr/qt4 && brew install cartr/qt4/openssl@1.0
这在我的 Mac 上对我有用
brew switch openssl 1.0.2n
brew switch openssl 1.0.2s
在 Catalina 上为我工作。
我会投入 2 美分,因为我没有看到解决我问题的答案。
我的特定用例涉及使用 ruby 2.6.3 和 postgres 10.x 系列启动旧版 Rails 应用程序。
我正在运行 macOS 10.13.x 高山脉
我几乎每天都更新 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 -
解决我的特定问题的最快方法是从当前创建一个 smylink,
libssl.1.1.dylib
libcrypto.1.1.dylib
创建 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
路径和版本号显然会随着时间而改变,因此在创建上述符号链接时要注意路径和版本号。创建符号链接后,我可以启动我的 rails 应用程序。
干杯
把这个留在这里给未来的我👴🏼
brew reinstall openssl
它会自动更新与 openssl 兼容的 mysql 服务器。我尝试了很多东西,但只有这对我有用。
我有一个类似的问题,运行下面的命令为我修复了错误:
brew update && brew upgrade
我不得不以这种方式降级 OpenSSL:
brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb
这是唯一对我有用的解决方案。
如果有人来解决 MacOS Big Sur 中的 openssl@1.1
问题(即 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
brew
的 arm64 构建的 M1
一个简单的 brew update && brew upgrade 对我有用
提出 brew update && brew upgrade
作为解决方案不是一个好的答案,并且由于执行此错误,在大多数情况下都会出现此错误...
切换到您仅使用的先前版本:brew switch openssl XXX
,仅此而已。
Mehn 这是我在 2020 年 7 月 7 日,在面对这个错误 4 小时后。这是唯一对我有用的命令:
冲泡更新 && 冲泡升级
在我的 Catalina 安装中尝试通过 Alfred 使用 LastPass CLI 时出现此问题。
brew update && brew upgrade
解决了这个问题。
这是一个比降级 openssl 更好的选择。
这对我有用:
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
来源:https://github.com/kelaberetiv/TagUI/issues/635#issuecomment-560138773
ln -s /usr/local/Cellar/openssl@1.0.2t/1.0.2t /usr/local/opt/openssl
ln -s /usr/local/opt/openssl /usr/local/Cellar/openssl@1.0.2t/1.0.2t
如果您在 MacOS Catalina 10.15 上使用 ruby-2.7.0
$ brew reinstall openssl@1.1
或者
$ rvm reinstall 2.7.0
$ brew tap --repair
$ brew doctor
这可能是一个问题,因为旧版本的 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
说明解决方案:您似乎需要安装当前 brew 存储库 (1.0.2t version
) 中不再存在的旧 openssl 版本。为了解决它,您应该创建一个 点击 并 提取 旧版本(查看存储库历史记录),在新安装后创建一个指向此版本的链接并且您已链接到正确的版本。
brew uninstall --ignore-dependencies openssl
brew tap-new $USER/old-openssl
brew extract --version=1.0.2t openssl $USER/old-openssl
brew install openssl@1.0.2t
ln -s /usr/local/Cellar/openssl@1.0.2t/1.0.2t /usr/local/opt/openssl
文档:
Taps(第三方存储库) brew tap 将更多存储库添加到 brew 跟踪、更新和安装的公式列表中。默认情况下,tap 假定存储库来自 GitHub,但该命令不限于任何一个位置。
tap-new [options] user/repo
Generate the template files for a new tap.
--no-git: Don’t initialize a git repository for the tap.
--pull-label: Label name for pull requests ready to be pulled (default pr-pull).
--branch: Initialize git repository with the specified branch name (default main).
extract [options] formula tap 查看存储库历史记录以找到最新版本的公式,并在 tap/Formula/formula@version.rb 中创建一个副本。如果尚未安装水龙头,请尝试安装/克隆水龙头,然后再继续。要从非 homebrew/core 的水龙头中提取公式,请使用其完全限定的 user/repo/formula 形式。
extract [options] package user/repo
--version: Extract the specified version of formula instead of the most recent.
-f, --force: Overwrite the destination formula if it already exists.
上面的答案对我不起作用。我在带有 Xcode 12.5.1 的 Big Sur 11.6 上,并且 brew 不断给我一个错误,说我的命令行工具已过时。第一步是将 Xcode 更新到 13.0。重启机器,然后运行
brew install openssl@1.1
重新启动终端,现在重新运行给出以下错误的命令:
dyld: Library not loaded: /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib
现在一切都应该正常工作,您将不再看到错误消息。
我有一个类似的问题,根据这个和其他评论,这是发生和工作的事情:
➜ brew update && brew upgrade && brew install openssl
remote: Repository not found.
fatal: repository 'https://github.com/Homebrew/homebrew-dupes/' not found
Error: homebrew/homebrew-dupes does not exist! Run `brew untap homebrew/homebrew-dupes` to remove it.
...
➜ brew untap homebrew/homebrew-dupes
➜ brew update && brew upgrade && brew install openssl
这是在工作了几个小时之后,但我第一次看到自制软件。不确定 Homebrew 是如何知道要安装什么的,但它似乎从头开始安装所有东西。 macOS Catalina,zsh。我认为最初的问题是因为 Catalina
我得到的错误是:
dlopen(/Users/gscar/.gem/ruby/2.7.0/gems/pg-1.2.2/lib/pg_ext.bundle, 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
Reason: image not found - /Users/gscar/.gem/ruby/2.7.0/gems/pg-1.2.2/lib/pg_ext.bundle
如果您没有 Homebrew 或不知道它是什么
/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
上述解决方案对我不起作用。
首先运行 brew doctor
。如果你看到类似的东西
Error: unknown or unsupported macOS version: :mountain_lion
然后有一些过时的包需要删除,我的是
mongodb
。
它可以是 python@2
、node@6
或其他一些包。
卸载这些软件包 brew uninstall [name]
,然后运行 brew doctor
以验证一切是否正常。然后您可以在 brew update && brew upgrade
之后再次重新安装这些软件包。
我的建议是永远不要为了让你的构建工作而降低你的 openssl lib 版本。最好下载所需库的源代码并根据本地主机上的 openssl 版本构建它。
我在遇到同样的问题时遇到了这个帖子,但不方便降低 openssl 版本。最后获取源代码并构建应用程序并且它工作。我不知道为什么开发人员在他们的机器上拥有旧版本的 openssl,以及他们构建 dist 包并针对这些旧版本发布。
ls -al /usr/local/Cellar/openssl
时有人得到ls: /usr/local/Cellar/openssl: No such file or directory
吗?