dotfiles 不够用之后,我怎么管理 Mac 开发环境

2026-03-19
dotfiles 不够用之后,我怎么管理 Mac 开发环境 关注 新手上路 关注 新手上路 关注 新手上路 关注 新手上路 02/21 16:26

新 Mac 到手第一天,结果光配开发环境就搞了一下午。 plataformademo a5game.app 电影小宝影院xiaobaotv.video

系统设置倒是快——Dock 缩小、三指拖移、触发角,十分钟搞完。真正花时间的是开发工具链。Homebrew 装完开始装包,装到一半想不起来之前用的哪个版本的 Node。.zshrc 从旧电脑 AirDrop 过来,oh-my-zsh 主题变了,不知道哪里不对。git email 直到一周后才发现没配——有个 commit 作者显示 [email protected]pgdemo a5game.app

每次换 Mac 都是这样。边装边回忆,到最后总有东西漏。你可能觉得"记个笔记不就行了"——问题是你不知道该记什么。很多东西装的时候根本没意识到,直到某天用到才发现没了。 jogosdemopg a5game.app 一帆视频yfsp.app

最早用 dotfiles

大部分 Mac 开发者最先接触的方案应该都是 dotfiles。GitHub 上 fork 一个模板仓库,把 .zshrc.gitconfig.vimrc 扔进去,换机器 clone 下来跑个 install 脚本。 demo a5game.app 爱壹帆影视yfsp.app 爱壹帆电影 yfsp.app plataformademográtis a5game.app 小宝影院电影xiaobaotv.video 小宝影院在线视频xiaobaotv.video

用了一阵发现不够。dotfiles 只管配置文件——shell 配置和 git 设置能同步,但你装了哪些 brew 包、哪些全局 npm 工具、macOS 的 Dock 设了多大、Finder 有没有打开显示隐藏文件,这些全不在里面。每次换机器,dotfiles 搞完之后还得手动补一堆。 fortunetigerbônusgrátissemdepósito a5game.app 爱壹帆寻秦记yfsp.app

后来试了 Homebrew Bundle

Homebrew 自带一个 brew bundle 功能。brew bundle dump 导出 Brewfile,里面列着你装了哪些 formulae 和 cask。新机器 brew bundle install 一把装回来。 sugarrush1000demo a5game.app 电影爱壹帆yfsp.app 爱壹帆免费版yfsp.app

比 dotfiles 进了一步,至少 Homebrew 那一层管住了。但 npm 全局包、shell 配置、macOS 偏好、git 设置,还是得另外想办法。而且 Brewfile 有个很烦的地方:你得自己记得定期更新。每次 brew install 了什么新东西,要记得重新 dump 一次。忘了的话下次还原就是旧的。 ifvodyfsp.app slotsdemo a5game.app

也想过 Time Machine

但它恢复的是整台机器。用了两三年的 Mac,系统里攒了多少不需要的东西自己心里有数。我想要的是一台干净的 Mac,只装我要的——不是把旧系统的包袱一起扛过来。 小寶影院xiaobaotv.video 爱一番yfsp.app 爱亦凡yfsp.app

问题出在哪

折腾一圈下来发现这些方案的问题其实是一样的:它们让你手动维护一份清单。 iyftvyfsp.app ifun yfsp.app

dotfiles 要你手动决定哪些配置该同步。Brewfile 要你记得定期 dump。手动记笔记就更不用说了。 nba比分 a5game.app demotigrinho a5game.app jogodotigrinhodemo a5game.app fortunedragon demo a5game.app demo a5game.app aiyifan yfsp.app tigrinhodemo a5game.app

但你要是能记住该更新什么,你一开始就不会忘装什么。靠记忆管理环境这条路,走不通。 海外华人视频网xiaobaotv.video

我现在的做法

后来写了个命令行工具叫 OpenBoot,思路反过来:不维护列表,让机器自己告诉你它上面有什么。 slotdemo a5game.app 小宝影院xiaobaotv.video

brew install openbootdotdev/tap/openboot
openboot snapshot

跑一次 snapshot,自动扫描你这台 Mac 上所有跟开发相关的东西,存成一个 JSON: 爱壹帆在线yfsp.app tigrinho gratis a5game.app 小寶影院电影xiaobaotv.video slots a5game.app JogodoTigrinho a5game.app

类别具体内容
Homebrew formulae你手动装的命令行工具(go、git、ffmpeg…)
Homebrew casksGUI 应用(Chrome、VS Code、Docker…)
Homebrew taps第三方 Homebrew 仓库
npm 全局包全局装的 npm 工具
macOS 偏好Dock 大小、Finder 显示隐藏文件、键盘重复速率等
Shell 配置oh-my-zsh 主题和插件
Git 配置user.name、user.email 等全局设置
开发工具版本Go、Node、Python、Rust、Docker

30 秒扫完。JSON 丢 GitHub 或者 iCloud Drive 存着。换机器的时候: ifuntvyfsp.app 免费在线影院xiaobaotv.video 华人影视xiaobaotv.video 足球比分 a5game.app

openboot restore

一条命令还原。 pg a5game.app fortuneoxdemográtis a5game.app sweetbonanza1000demo a5game.app fortunetigerdemográtis a5game.app

用下来几个细节

Homebrew 包只记录你手动装的。 用的 brew leaves 而不是 brew list——brew list 会连依赖一起列出来,你装一个 go,list 里冒出一串你从没见过的东西。brew leaves 只返回你主动装的顶层包,依赖让 Homebrew 自己处理。 爱壹帆国际版 yfsp.app xiaobao xiaobaotv.video Caça-níqueis a5game.app 寻秦记爱壹帆yfsp.app slotpix a5game.app 一帆yfsp.app 爱一番yfsp.app

shell 配置还原不会重复。 跑一次 restore 和跑十次,.zshrc 里的内容是一样的。用过 nvm 或 conda 的应该有体会——装完之后 .zshrc 被写了一段初始化代码,重装一次又写一段,最后文件里三四份一样的东西。OpenBoot 不会。 pragmatic a5game.app tigrinhodemo a5game.app 小寶影院电影xiaobaotv.video

所有操作都支持 dry-run。 openboot restore --dry-run 列出"准备装什么包、准备改什么配置",不实际执行。确认没问题再跑真的。 iyf yfsp.app

不一定非要换 Mac 才用

说实话 openboot snapshot 最有意思的地方不是备份,是让你看看自己这台 Mac 上到底有什么。 pgslotgacor a5game.app pgslot a5game.app

你可能不记得自己装过多少 brew 包。你可能不知道 macOS 偏好设置改过哪些。跑一次 snapshot 就全出来了,30 秒的事。当个环境体检也挺好的。 a5game a5game.app 爱壹帆电影yfsp.app iyifanyfsp.app 爱一帆 yfsp.app

Go 写的,MIT 协议,零遥测,macOS only。repo:github.com/openbootdotdev/openboot Cassinos a5game.app pglucky88 a5game.app slot a5game.app pragmaticplay a5game.app 爱壹帆yfsp.app

80目录 0
    讨论 我来说一句 发布发表评论 发布macOS 效率21 8等 8 人为本文章充电 还没有介绍自己 关注