不常见的Homebrew错误:"未知命令:switch"

36

我正试图重新启动一些需要使用旧版本openssl的遗留项目。

我在这个问题上找到了很好的参考here,它在我的一台机器上有效,但另一台机器上却没有,给了我以下错误:

$  brew switch openssl 1.0.2t
Error: Unknown command: switch

这个错误似乎并不常见,在 Google/Stack Overflow 搜索中没有找到有用的信息。

我迄今为止尝试过:

  • 解决了由 brew doctor 显示的所有警告
  • 运行了 brew update && brew upgrade
  • 更新了 Xcode 命令行工具
  • 重新安装了 openssl

我该怎么做才能修复这个问题?


1
我也还没有找到解决方法,但我遇到了完全相同的问题 :( 显然,homebrew 最近已经取消了 switch 命令: https://github.com/Homebrew/discussions/discussions/339 - reesaspieces
10
我也遇到了完全相同的问题。Homebrew 工作人员决定删除 switch 命令,却没有提供任何“请使用此代替命令”的提示,这似乎是一个糟糕的决定。唉。 - thefonso
3个回答

29

如我在上面的评论中所述,Homebrew已完全删除了switch命令,这就是为什么它会显示“未知命令”的原因。

但是rbenv提供了一个tap,可以从中安装openssl。您可以运行以下命令:

brew install rbenv/tap/openssl@1.0

如果您是为了 Ruby 目的而安装 openssl@1.0,此线程也会告诉您如何操作。例如:

CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" rbenv install 2.7.2

这适用于2.7.2,但令人惊讶的是不适用于2.6.5。 - Vina

0
禁用“switch”命令。请使用“link”代替:
brew link openssl@1.1

-3

我刚刚使用了sudo:

sudo brew switch dart 2.16.0

关闭 VS Code 并重新启动。 就这样,无错误运行。


2
你的评论不相关,因为你使用了旧版本的brew。 - Max Lapshin
永远不要这样做,通过执行 sudo brew "你将会给所有的构建脚本完全访问你的系统"(来自文档)。 - Karina D.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接