Homebrew不直接支持降级安装,但可通过brew switch切换已存旧版、替换历史formula重装或使用cask-versions安装GUI旧版实现回滚。

Homebrew 本身不直接支持“降级安装”(比如 brew install xxx@1.2),但通过组合使用已安装版本、历史 formula 文件、brew switch 或 brew link/unlink 等机制,可以安全、可控地完成版本回滚。关键在于:你是否还保留着目标旧版本的安装文件(即 Cellar 中的 keg)。
确认旧版本是否仍在本地
Homebrew 安装的每个版本都会存放在 /usr/local/Cellar/ 下对应目录中。先检查目标软件的历史版本是否还在:
- 运行
brew list --versions [formula-name](例如brew list --versions python)查看所有已安装版本 - 或直接进入
ls /usr/local/Cellar/[formula-name]查看目录列表,如看到3.6.5_1、4.9.0等旧版文件夹,说明可直接切换 - 若只显示最新版(如只有
3.7.0),则需手动恢复旧版 formula 并重装
方法一:用 brew switch 快速切换(适用于旧版 keg 存在)
这是最轻量、最推荐的方式,无需重装,仅调整符号链接:
- 先卸载当前活跃版本:
brew unlink [formula-name] - 再切换到已有旧版:
brew switch [formula-name] [version](例如brew switch python 3.6.5_1) - 验证:
[formula-name] --version或which [formula-name]
⚠️ 注意:brew switch 在较新 Homebrew 版本中已被移除,若提示 command not found,可用 brew unlink && brew link [formula-name]@[version] 替代(需公式支持版本化别名,如 python@3.6)。
方法二:替换 formula 后重装(旧版 keg 已被清理)
当 /usr/local/Cellar/ 中没有目标旧版时,需找回历史 formula 文件并强制安装:
- 访问
https://github.com/Homebrew/homebrew-core/commits/master/Formula/[formula-name].rb(如watchman.rb) - 找到对应 commit(按日期或版本号筛选),点击进入 → 点击 View → 点右上角 Raw → 保存为本地
[formula-name].rb - 覆盖默认 formula:
cp [formula-name].rb $(brew --repository homebrew-core)/Formula/ - 执行安装:
brew install [formula-name](此时会安装你指定的旧版) - 安装完成后建议
brew pin [formula-name]防止后续brew upgrade覆盖
方法三:配合 cask-versions 安装替代版本(仅限 GUI 应用)
对 Chrome、VS Code、Docker Desktop 等 macOS 图形应用,Homebrew Cask 提供了多版本支持:
- 启用版本仓库:
brew tap homebrew/cask-versions - 搜索可用变体:
brew search --cask [app-name](如google-chrome-beta、visualstudiocode-insiders) - 安装指定版本:
brew install --cask google-chrome-beta - 多个版本可共存,通过不同 App 名称区分,无需卸载冲突
这种方式不叫“回滚”,但能达成相同目的:在不破坏当前环境的前提下,使用更稳定或兼容的旧版/测试版。

















