brew switch 不再是 brew 命令。
$ brew --version
Homebrew 3.0.0
Homebrew/homebrew-core (git revision 8d644; last commit 2021-02-10)
$ brew switch mariadb@10.3
Error: Unknown command: switch
您在问题中提到的Tips and Tricks 页面也删除了对brew switch 的任何提及。
安装以前版本的公式
安装某些公式的特定版本的支持方法
是查看是否有可用的版本化公式(例如 gcc@7)。如果
您要查找的版本不可用,请考虑使用 brew
提取。
要么,man brew 中没有提到 brew switch。
因此,Homebrew 维护人员似乎已在上游解决了您的问题。
请注意,brew switch 自 Homebrew 2.6.0 以来已被弃用。
== 更新 ==
如果我们以 python@3.7 和 python@3.9 为例。我们应该首先检查brew info python@3.7 和brew info python@3.9 的输出。我们看到python@3.7是keg-only:
python@3.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
这不是 python@3.9 的情况,因为它现在是 python 公式的别名。这意味着安装python@3.9会自动运行brew link python@3.9,安装python@3.7不会运行brew link python@3.7。
然后列出哪些文件将与python@3.9链接,你可以运行brew link --dry-run python@3.9
Would link:
/usr/local/bin/2to3
/usr/local/bin/2to3-3.9
/usr/local/bin/easy_install-3.9
/usr/local/bin/idle3
/usr/local/bin/idle3.9
/usr/local/bin/pip3
/usr/local/bin/pip3.9
/usr/local/bin/pydoc3
/usr/local/bin/pydoc3.9
/usr/local/bin/python3
/usr/local/bin/python3-config
/usr/local/bin/python3.9
/usr/local/bin/python3.9-config
/usr/local/bin/wheel3
/usr/local/share/man/man1/python3.1
/usr/local/share/man/man1/python3.9.1
/usr/local/lib/pkgconfig/python-3.9-embed.pc
/usr/local/lib/pkgconfig/python-3.9.pc
/usr/local/lib/pkgconfig/python3-embed.pc
/usr/local/lib/pkgconfig/python3.pc
/usr/local/Frameworks/Python.framework/Headers
/usr/local/Frameworks/Python.framework/Python
/usr/local/Frameworks/Python.framework/Resources
/usr/local/Frameworks/Python.framework/Versions/3.9
/usr/local/Frameworks/Python.framework/Versions/Current
要列出哪些文件将与 python@3.7 链接,请运行 brew link --dry-run python@3.7:
Would link:
/usr/local/bin/2to3
/usr/local/bin/2to3-3.7
/usr/local/bin/easy_install-3.7
/usr/local/bin/idle3
/usr/local/bin/idle3.7
/usr/local/bin/pip3
/usr/local/bin/pip3.7
/usr/local/bin/pydoc3
/usr/local/bin/pydoc3.7
/usr/local/bin/python3
/usr/local/bin/python3-config
/usr/local/bin/python3.7
/usr/local/bin/python3.7-config
/usr/local/bin/python3.7m
/usr/local/bin/python3.7m-config
/usr/local/bin/pyvenv
/usr/local/bin/pyvenv-3.7
/usr/local/bin/wheel3
/usr/local/share/man/man1/python3.1
/usr/local/share/man/man1/python3.7.1
/usr/local/lib/pkgconfig/python-3.7.pc
/usr/local/lib/pkgconfig/python-3.7m.pc
/usr/local/lib/pkgconfig/python3.pc
/usr/local/Frameworks/Python.framework/Headers
/usr/local/Frameworks/Python.framework/Python
/usr/local/Frameworks/Python.framework/Resources
/usr/local/Frameworks/Python.framework/Versions/3.7
/usr/local/Frameworks/Python.framework/Versions/Current
所以要回答你的问题,在 python@3.7 和 python@3.9 之间切换的一种方法是使用 brew link 和 brew unlink 是的,如果你有与 python@3.7 兼容的脚本而不是不兼容的脚本,这可能会破坏事情与 python@3.9 或反之亦然。
还有另一种方法可以同时使用不同版本的 python。这在brew link --dry-run python@3.7的输出末尾有解释:
If you need to have this software first in your PATH instead consider running:
echo 'export PATH="/usr/local/opt/python@3.7/bin:$PATH"' >> ~/.zshrc
对于需要python@3.7的脚本,可以设置:
export PATH="/usr/local/opt/python@3.7/bin
对于需要python@3.9的脚本,可以设置:
export PATH="/usr/local/opt/python@3.9/bin
希望这会有所帮助。