
上个月又买了台 Mac ,又经历了一遍配环境地狱。
之前几年一直想找个靠谱的自动化方案,陆续试了 Brewfile 、自己写 bash 、chezmoi 、nix-darwin ,踩了一圈坑。Brewfile 最省事但只管 brew install 那堆东西,shell 配置 macOS 偏好 git 身份统统不管,搞完发现才干了三分之一的活。自己写 bash 想把剩下的也自动化,结果国内网络你懂的,中间断一下整个脚本就挂了,而且这玩意跑两遍就报错。
chemoi 搞 dotfile 确实专业,但光研究它的目录结构就花了比我配 .zshrc 还长的时间。nix-darwin 我专门花了一整个周末,从满怀期待到满屏报错,现在对日常用 nix 的人是真的肃然起敬。
后来实在受不了,自己糊了个 CLI 把这几个的活攒一块了(开源的,有兴趣的点 blog 里的链接)。每个方案的坑我都记下来了,也附了国内换镜像源的完整配置,不换源上面说的全白搭:
blog.fullstackjam.com/2026/mac-setup-automation-guide-2026-zh/
所以想问问大家现在都怎么搞的?纯 Brewfile 就完事了还是也在折腾别的?有没有人真的在日常用 nix-darwin 的,学了多久上的手? dotfile 你们用啥管,chezmoi ? stow ?还是直接 git bare repo 硬来?
1 Jiajin 2 月 15 日 新电脑到手,自己配置也挺有意思的。homebrew 、on my zsh 就够了。 |
2 willwon1 2 月 15 日 换了不下 4 台 macbook 了。每次到手都是用换机、基本上换过来所有东西都配好、跟以前机器一模一样 |
3 MacsedProtoss 2 月 15 日 via iPhone 网络环境软路由来保证的情况下 配环境很快啊 cli 部分 brew 就完事了 gui 部分的话看你有多少是需要走 App Store 的 |
4 seanzxx 2 月 15 日 nix-darwin 我是日常用的,操心是真操心。 用稳定版本软件更新慢 用 master 有时候会出错,而且有些出错很久都没有人修,逼得自己动手修,跳过单元测试了,修改 python 依赖。 配置好了也挺安心的,指哪打哪,比如你只安装一个 opencode ,他不会像 homebrew 一样还暴露一个 node 恶心人,传递依赖都是内部消化,外部不可见。 它不光可以搞定软件安装,配置文件也可以搞定,写一套迁移起来也挺方便的。 我现在是用 nix-darwin 管理命令行工具,nix-darwin 通过 brew 管理 GUI app |
5 ratazzi 2 月 15 日 |
  7 royfk OP @willwon1 迁移助理是省心,不过我有个强迫症想每次都 clean install ,不想把旧 Mac 的坑带过来。你迁移过来会不会有旧版本的包冲突之类的问题? |
8 royfk OP @MacsedProtoss 软路由确实必备!可惜不是人人都有 |
9 royfk OP @seanzxx 真猛,我那个周末就是卡在 master 出错这步直接弃了...你这还得自己跳单测改依赖,已经不是配环境了这是修包了 大佬从开始学到能日常用花了多久啊? |
10 lerry 2 月 15 日 dot files 手动复制,常用软件 brew install |
11 huijiewei 2 月 15 日 不省心不就是网络问题,跟其他没有半毛钱关系 反正我不管跑什么,最终 99%的问题都是网络造成的问题 |
12 zktree 2 月 15 日 via iPhone 如果信任 AI ,可以让 claude code 通过远程 ssh 配置 |
14 zktree 2 月 15 日 via iPhone @royfk 现在家里的 home lab 基本都交给 Claude Code 了 Docker 升级、ADB 连接电视装应用、代理配置、HA 调整这些基本一次就能搞定,省心不少。 |
15 whoosy 2 月 15 日 直接迁移助理 |
16 maojun 2 月 15 日 via iPhone 直接时间机器恢复就跟上一台一模一样 |
18 yuanmomo9090 2 月 15 日 via iPhone 不是 timemachine ? |
19 foxkiller 2 月 15 日 就配个 neovim 就行。。。其他的不用配啥了…… |
20 Jiceburger 2 月 15 日 via Android 来红帽吧,kickstart 传三代 |
21 zhhmax 2 月 15 日 我现在开发环境都在云服务器上,本地 Mac 配置一下 iTerm2 ,装个 VSCode 后就能开发了。 |
22 stinkytofux 2 月 15 日 最近 10 年我只配过两次环境, 第一次是人生第一台 mac, 第二次是 Intel 转 ARM. 中间换电脑, 加电脑,直接用时间机器还原. |
25 Jiajin 2 月 15 日 第一步永远是先从 tun 层面解决网络问题,然后就简单了。 |
27 Folder 2 月 15 日 我的 mac 配置不复杂, 安装的软件也不多, 所以更喜欢手动来. 特别是手动安装配置的过程中能发现不少实际上用不到的和之前没配置好的东西. 有点像代码重构一样. |
30 usVexMownCzar 2 月 15 日 via iPhone 整个美区等非国区的账号,开机初始化后,App Store 登录美区账号下载 shadowrocket 圈 x ,打开 Safari 去复制订阅链接。 接下来水到渠成 |
31 darksword21 PRO nix |
32 maojun 2 月 15 日 via iPhone 想 clean install 的话可以配好以后用时间机器做一个模板,以后每次从这个时间点恢复,也方便 |
33 MasterCai 2 月 15 日 TimeMachine ,我更希望我的新 Mac 用起来跟我的旧 Mac 一样,迁移了三次都挺好用的 |
34 huaweii 2 月 15 日 via Android brewfile + stow (管理 dotfile )+ AI 写个脚本,很简单。 |
35 yhxx 2 月 15 日 每次都是手动,感觉很好玩,像是一个新玩具 自动化掉感觉就像是个工具了 |
36 royfk OP @huaweii 我之前也是这么搞的,后来维护 Brewfile + stow 冲突处理这些零碎时间加起来不少,就干脆写了个 CLI 把这些打包了:github.com/openbootdotdev/openboot |
37 Liftman 2 月 15 日 直接 codex 启动就行了。。有啥复杂的。。我现在给客户服务器部署我都不亲自去的。直接 codex ssh 操作。分分钟全部完成。。。折腾啥玩意。 |
38 snylonue 2 月 15 日 @seanzxx unstable 分支应该会稳定一点 |
39 lixintcwdsg 2 月 15 日 不都是 timemachine 恢复吗?没有一次配置过。 |
40 volvo007 2 月 15 日 via iPhone 先用备份还原,如果没有备份纯手装也很快。装了这么多次,首要就是把梯子的软件和配置先搞好。新系统啥都不做第一件事就是搞梯子,搞完之后后面的一马平川了。有条件的话我会把几个重要的软件安装包也备好,省得下载花时间。我工作比较杂,要装的东西非常多,但基本 3-4 小时也都搞定了( brew 里面大约 30 个库或者 app 、conda 、golang 、node 、rust/cargo 、vscode/cursor 、blender 、fusion 、ps/lightroom 后台放它自己装、Office 后台自己装、raycast 、Chrome 、dbeaver 、最花时间的应该是 nvim 编译+简单配置但现在也熟练了、kitty 配置一下就行,剩余的就是平日花时间慢慢完善了) |
41 dawn009 2 月 15 日 确实麻烦。而对我而言另一个问题是,我的这些使用偏好更新的很快,在偏好稳定之前不适合做自动化配置,然而一直稳定不下来。 |
42 royfk OP @volvo007 你这个列表基本就是 openboot developer preset 的内容哈哈,一个命令能把这 30 多个包全装完,cask 的也包含。要是下次换机可以试试:openboot.dev |
44 FlashEcho 2 月 15 日 我换电脑的频率不高,所以一般是手动重装的,这样可以正好清理掉一些顽固的缓存和不用的软件,如果非要自动化,我感觉用手动先处理好网络问题,然后 homebrew+App Store+各种配置文件的专门仓库+ansible playbook 可能能搞定,不寄希望于一个工具真的干所有,对外只有一个 playbook 也行 |
45 gudecatch 2 月 15 日 可能我并不经常动我装的东西,所以体感来说 nix-darwin 还挺好用的,一套系统能基本管上 mac, linux |
46 bowencool 2 月 15 日 全部时间机器恢复,累计得有 10 台 mac 了 |
47 royfk OP @FlashEcho 我之前也试过 homebrew + ansible playbook 这套,后来发现 playbook 维护成本比想象中高。现在常用的部分打包成了一个 CLI ,本质上就是你说的"对外只有一个 playbook"的思路:github.com/openbootdotdev/openboot |
48 veightz 2 月 15 日 via Android 要不先安装个 codex 或者 claude ,然后让它来装? |
49 EVJohn 2 月 15 日 你不买个 surge 吗? |
50 cloverzrg2 2 月 16 日 四五年才换一次 MacBook ,用的时候缺哪个就装哪个,不感觉有什么烦恼, 这样新系统也更干净 |
51 20015jjw 2 月 16 日 稍微有点信息搜索能力就不能找不到 mackup... |
52 phoenix0openclaw 2 月 16 日 我现在的结论是:别指望“一把梭”,分层最省心: 1 ) Brewfile 只管 GUI/CLI 包(+ mas 装 App Store ),当作 base image ; 2 )语言运行时用 mise/asdf ( node/python/ruby…),跟 brew 解耦; 3 ) macOS defaults / ssh/git 身份 / 证书 这些写成可重跑的小脚本(幂等+重试),最后人工填一次 secrets 。 chezmoi/stow 我更偏 chezmoi ,但只拿它管 dotfiles ,别让它背全世界。 |
53 dilidilid 2 月 16 日 不理解有啥需要配置的,就算不用 Time Machine ,MAS 把软件一装,iCloud 一同步,home 目录配置和脚本复制过去,brew 那些软件需要的时候再装,不就完了吗,可能再把微信目录复制一下?你还要配置啥 |
54 royfk OP @phoenix0openclaw 你这个分层思路跟我做的工具思路基本一致,第 1 层 Brewfile + 第 3 层 macOS defaults/git 配置这些我打包成了一个 CLI ,snapshot 能把当前环境导出,换机一个命令恢复。第 2 层 mise/asdf 确实应该独立管,不该耦合进来。开源的:github.com/openbootdotdev/openboot |
55 JEFFMEME 2 月 16 日 via iPhone 1.你这种迁移多且频繁的需求,用时间机器(备份还原设计目的就是干这个的)迁移不是更方便么:)2.电脑配置买高一点,降低更换频次;3.工作内容职业随年限会更迭的,以后多为管理、检查,自然配置折腾的就少了:)PS:没有恶意单纯聊聊~ |
56 LotusChuan 2 月 16 日 我环境都是命令行的,vcsh 做版本管理,配完代理后 pull 下来就全自动化了。最多就有些密钥不好托管到 github ,需要手动从旧机器拷过来 |
57 bubuyier 2 月 16 日 我最近也是配了一台新 Mac ,用 Claude Code + nix-Darwin 来管理软件,很满意了 |
58 CaspianJou 2 月 18 日 @Jiajin #25 正解,折腾换源是最没必要的 |
59 phoenix0openclaw 2 月 18 日 @royfk 这个 openboot 思路很对味,感谢开源分享! 我好奇两点:1 ) secrets ( ssh key/token )你是怎么处理的,留人工还是也能半自动? 2 ) snapshot 导出的可移植性怎么样(比如换目录/多台机),有没有做幂等+重试? 有空我也去看看仓库,感觉这类工具最怕的就是“跑两遍就炸”,你这套如果稳就很香。 |
60 ericguo 2 月 18 日 @seanzxx opencode 的依赖是 bun ,bun 依赖需要 node ,另外 nix 并不会少占用磁盘,只是看上去光鲜罢了,表面光鲜几乎没啥意义,brew 才是真的省磁盘。 |
61 royfk OP @phoenix0openclaw 好问题! 1 ) secrets 目前是留人工的,ssh key/token 这类不该进自动化流程,安全风险太大。后续可能做个提示引导,但不会自动处理 2 ) snapshot 可移植性目前还比较基础,主要靠 brew 包名匹配。幂等和重试有做。不过跨目录/多台机器的场景确实还需要完善 “跑两遍就炸”这个点说到痛处了哈哈,这也是我重点在做的部分。 |
62 kenniewwwww 2 月 19 日 对我来说就只有 brewfile + dotfile 迁移。还有一些依赖 bun/uv/cargo 安装的小工具。 |
63 zz177060 2 月 19 日 via iPhone 我其实不懂代码,我以前想找点仓库的开源项目 自己体验,就是老卡在 python 上,或者环境出错,看网上很多教程,也看不懂,无赖只能放弃。今年开了 vscode 后,加入了 ai ,我感觉直接飞起,什么环境问题,我不用管了,我登录仓库账号,全权授权给机器,我提需求就不管了,自己处理,突然觉得很爽 |