6.2 用 brew bundle 管理机器状态
2 分钟阅读
快照当前机器:brew bundle dump
brew bundle dump 会把当前已安装的 formula、cask、tap 及其他受支持类型导出成一个 Brewfile。把输出写到全局位置:
| |
默认写入 ~/.Brewfile(具体路径见 man brew)。生成的 Brewfile 默认还会在每个软件上方添加描述注释,例如:
| |
恢复(并默认升级)这些软件:
| |
多份快照与差异比较
不同 Brewfile 通过 --file 指定:
| |
快照可以提交进版本控制,用普通 diff 工具比较不同时间点的机器状态。
让机器严格匹配快照:brew bundle cleanup
先安装目标 Brewfile,再把清单之外的受支持软件全部卸载:
| |
不带 --force 时会先询问确认。cleanup 同时会把 Homebrew 的全局信任库重置为所选 Brewfile 声明的值:未在文件中声明的信任项会被移除。
查询 Brewfile:list
| |
编辑:edit
在编辑器中打开当前目录的 Brewfile:
| |
增删条目:add / remove
| |
remove 可用 --formula、--cask、--tap 等参数限定只删除某类条目。
版本与锁文件的真相
Homebrew 是滚动发布(rolling release)包管理器,官方明确表示:
brew bundle 不会、也不打算提供类似 package-lock.json 或 Gemfile.lock 的 “Brewfile 锁文件”。
想停止自动升级,使用:
| |
或设置 HOMEBREW_BUNDLE_NO_UPGRADE=1。之后仍可手动整体升级:
| |
或只升级部分 formula:
| |
若需要真正的“锁定特定版本”,参见官方 Locking installed formulae at specific versions,并在 4.2 更新、升级与版本固定 中了解 brew pin。