mac上用homebrew降级安装旧版本软件包需先检查cellar中是否存在旧版keg,若存在则用brew unlink与brew link切换;若已被清理,则通过github历史commit获取旧formula url安装,或用brew extract创建可维护副本。

Mac上用Homebrew降级安装旧版本软件包,核心是绕过默认只装最新版的限制,直接定位并部署目标历史版本的安装逻辑——这要求你明确知道该软件是否还留有本地旧版文件,或是否需要从GitHub历史提交中找回已下线的formula。
确认旧版本是否还在本地Cellar中
Homebrew每次安装都会把版本目录完整保留在/usr/local/Cellar/(Apple Silicon为/opt/homebrew/Cellar/),先查有没有现成可用的旧版keg,能省去重装步骤。
运行brew list --versions [formula-name],例如brew list --versions python,列出所有已安装但未激活的版本。
若输出中包含类似python 3.9.16_1这样的条目,说明3.9.16_1已下载解压完毕,只需切换;若只显示最新版(如只有3.11.9),则必须走重装路径。
也可直接执行ls /usr/local/Cellar/[formula-name](或ls /opt/homebrew/Cellar/[formula-name])验证目录是否存在。
方法一:用brew switch快速切换(旧版keg存在时)
这是最轻量、零重装的操作,仅调整符号链接指向,5秒内完成。
第一步:卸载当前活跃版本 → brew unlink [formula-name]
第二步:切换到已有旧版 → brew switch [formula-name] [version],例如brew switch node 18.19.0
⚠️ 注意:brew switch在Homebrew 4.0+已被移除。若提示command not found,改用brew unlink [formula-name] && brew link [formula-name]@[version],但前提是该formula支持@x.y别名(如python@3.9有,而ffmpeg原生不支持)。
第三步:验证结果 → [formula-name] --version,确认输出为你指定的旧版本号。
方法二:用历史formula重装(旧版keg已被brew cleanup清理)
当/usr/local/Cellar/[formula-name]里只剩最新版目录时,必须找回对应版本的formula文件,再强制安装。
一款AI工具,主要用于使用 OpenAI Codex CLI 处理编码任务。触发词:codex、code review、fix CI、refactor code、implement feature、coding agent、gpt-5-codex。Clawdbot 可将编码工作委托给 Codex CLI 作为子代理或直接工具,适合需要提升相关任务效率的用户。
打开浏览器,访问https://github.com/Homebrew/homebrew-core/commits/master/Formula/[formula-name].rb,比如https://github.com/Homebrew/homebrew-core/commits/master/Formula/redis.rb。
点击右上角“History”,按日期或关键词(如“4.0.14”)筛选出含目标版本的commit。
点进该commit → 找到[formula-name].rb文件 → 点“Raw” → 复制地址栏完整URL,形如https://raw.githubusercontent.com/Homebrew/homebrew-core/abc12345/Formula/redis.rb。
执行brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/abc12345/Formula/redis.rb,Homebrew会据此URL下载并安装该commit时刻定义的版本。
安装后立即执行brew pin [formula-name],否则下次brew upgrade会覆盖掉它。
方法三:用brew extract创建可维护的本地副本
适合需要长期保留多个旧版、且希望像管理正式formula一样升级/卸载的场景。
方法一:提取并安装 → brew extract --version=16.20.2 node homebrew/versions → brew install homebrew/versions/node@16
方法二:后续可随时重装该副本 → brew reinstall homebrew/versions/node@16
方法三:切换使用 → brew unlink node && brew link homebrew/versions/node@16
这一步操作起来很简单,直接把命令复制粘贴执行即可,无需手动编辑文件或处理路径。










