用途:对开发者 Mac 做周期性“保持最新”的维护,强调安全与可重复执行,适合每周或每月重跑。不适用于首次安装、brew 损坏修复、项目依赖升级或 macOS 大版本迁移。
主要能力与流程:先 brew update 刷新元数据,再用 brew outdated 展示待升级列表,并检查 brew services list 中是否有承载数据的服务;对数据库等主版本敏感包(如未固定版本的 postgresql、mysql、mongodb-*)先排除或与用户确认,可用 brew pin 固定。随后 brew upgrade、brew cleanup 与 brew autoremove(先 --dry-run 预览)、brew doctor。带 auto_updates 的 cask(Chrome、VS Code、Slack 等)默认跳过,由应用自更新;如需强制可用 brew upgrade --cask --greedy。
Brewfile 重捕获:先 brew bundle check 检测漂移,再 brew bundle dump --describe 生成候选文件,用 diff 对比后由用户确认替换,避免盲目 --force 丢失注释。
App Store 与系统:mas outdated && mas update(需已登录 App Store);softwareupdate --list 只读,安装需明确同意并警告可能重启,脚本中优先 sudo softwareupdate --install --recommended --os-only。
运行时层:按存在情况更新 oh-my-zsh、mise、nvm、pyenv、uv、pipx、rustup、gh 扩展与全局 npm 包,各管理器在配置范围内更新,不在此改动项目版本固定。
磁盘回收:先只读查看 docker system df、brew cleanup --dry-run 等,再做安全回收;docker system prune、删除不可用模拟器、DerivedData 等破坏性操作须先展示列表并确认。可选 brew install topgrade 一键执行,但需审查配置并先 --dry-run。最后报告升级、跳过原因、回收空间及需重启项。
限制:mas 需登录且不能购买;nvm 安装新版本不会删除旧版本;uv 在 brew 安装下自更新会失败,应 brew upgrade uv;macOS 大版本迁移需手动处理。