Mac 包管理备份

目标 & 背景

通常针对 Mac 的备份都使用 TimeMachine 官方工具。但是有时候我希望只恢复部分配置时,就需要自行处理了

  • . 文件(一般是配置文件)
  • 已通过 brew 安装的命令行工具和 App

第一种情况可以通过 dotfiles 管理环境配置 来统一控制,而第二种就是这篇文章所介绍的核心内容了

brew bundle

最近注意到 brew 贴心的给出了 bundle 这个工具,当需要迁移命令行工具时,就需要运行如下指令

brew bundle dump --describe --force --file="~/brewfile"

其作用是,brew 会根据当前机器安装的所有文件,自动生成 brewfile

  • brew bundle dump:使用 brew 的dump命令,将已安装的软件包列表导出
  • --describe:导出软件包列表时,包括每个软件包的描述信息
  • --force:强制导出软件包列表,即使存在同名的文件
  • --file="~/brewfile":将导出的软件包列表保存到指定的文件~/brewfile

此时生成的 brewfile 文件长这样

tap "homebrew/bundle"
tap "homebrew/cask"
# ...
# Clone of cat(1) with syntax highlighting and Git integration
brew "bat"
# ...
# Wine wrapper built with SwiftUI
cask "whisky"
# ...
vscode "GitHub.copilot"

最后只需要在宿主机上同步这个 brewfile,最后执行如下指令即可

brew bundle --file="~/brewfile"