homebrew 更新 formula 需先执行 brew update 同步远程索引(含版本号、依赖等),再运行 brew upgrade 升级;跳过 update 会导致漏更,brew outdated 可预览待升级项,upgrade 后建议用 brew cleanup 清理旧版。
homebrew 更新已安装的公式(formula),核心是两步:先同步远程索引,再执行升级。只运行 brew upgrade 往往无效,因为本地软件列表可能早已过期。
更新前必须先同步索引
brew update 不是“升级 Homebrew 自身”那么简单——它实际是从 GitHub 拉取所有 formula 的最新定义(包括版本号、下载地址、依赖关系等)。如果跳过这步,brew upgrade 就只能基于旧数据判断“有没有新版”,很可能漏掉刚发布的更新。
- 建议每次升级前都执行:
brew update - 想看哪些包有更新可用,运行:
brew outdated(列出所有可升级的 formula 及当前/目标版本)
执行升级操作
brew upgrade 默认升级所有已安装且有新版的 formula。你也可以指定单个或多个包:
- 升级全部:
brew upgrade - 升级指定包(如 git 和 node):
brew upgrade git node - 只升级某个包,即使它被 pin(锁定)了:
brew upgrade --ignore-pinned git
升级后清理旧版本
Homebrew 升级时默认保留旧版安装包,用于回滚。长期不清理会占用不少空间。推荐在升级后顺手清理:
- 删掉所有旧版本缓存:
brew cleanup - 只清理某一个包的旧版:
brew cleanup wget - 查看清理预估节省空间(不实际删除):
brew cleanup -n
补充说明
如果你装过 python@3.10 这类带版本号的 formula,它属于“滚动更新”类型:每次 brew upgrade python@3.10 安装的是该分支下当前可用的最新 patch 版(如从 3.10.13 升到 3.10.14),不是固定小版本。Homebrew 不支持 brew install python@3.10.9 这种精确语法。











