从 GNU Stow 迁移到 Chezmoi
Chezmoi 与 GNU Stow 以及简单符号链接方案
- 几位用户表示他们多次在 Stow 上“卡住”,但最终在 Chezmoi 上“坚持”了下来,原因是它在复制/同步和模板方面的用户体验更好,尽管它也有一些粗糙之处和功能臃肿的问题。
- 也有人认为 Stow 用于
/usr/local或编译软件还不错,但拿来管理 dotfiles 只是权宜之计。一些人则从 Chezmoi 回到 Stow,或者直接用普通符号链接 + 脚本,觉得 Chezmoi 的工作流(chezmoi edit、合并步骤)很烦。 - Chezmoi 的模板和文件命名方式并不适合所有人;有些人不喜欢模板会破坏正常的编辑器高亮,尽管也有编辑器插件。
- Chezmoi 受到称赞的点包括:权限管理、跨操作系统模板、
.chezmoiignore,以及尤其深入的 secrets manager 集成(1Password、Bitwarden、pass等)。
Nix、Home Manager 和 Guix
- 一批强烈支持者认为,Nix + Home Manager 是最完整、最可复现的“系统与用户配置”方案,而不只是 dotfiles。提到的好处包括:临时开发 shell、可复现环境、更少的临时工具、打包自定义软件,甚至可以配置整台 NixOS 机器。
- 也有人认为 Nix 文档支离破碎且过时,并且一旦偏离常见场景,复杂度就会显现。一些人提到 Nix 包存在 bug 或已被弃用。
- 有几位表示自己用 AI 工具生成 Nix 配置,称这大大减轻了学习痛苦。
- 批评者指出:Nix 在 Windows 上不可用,只为 dotfiles 使用时过于复杂;如果它不能控制整个环境(例如在企业 macOS 设备上),其价值会大打折扣。
- 还提到 Guix 与之类似,但受限于不支持 macOS。
其他 dotfile 策略和工具
- 常见替代方案包括:yadm(以 Git 为中心、抽象最少)、rcm、Janus(更轻量的类似 Chezmoi 方案)、mise 的 bootstrap 功能、Ansible、普通 Makefile,以及自制 shell 脚本。
- 许多用户更喜欢“git 仓库 + 符号链接 + 小脚本”,看重透明性、可移植性和零外部依赖。有些人运行持续同步(例如用 Syncthing),或者用 rsync 同步整个 home 目录,并约定由哪一端作为权威来源。
- 对符号链接的看法分歧:有些人不喜欢修改会直接写进仓库并在多台机器之间产生冲突;另一些人则把这视为优点,因为 Git 可以直接显示变更。
- 处理按机器/按操作系统的差异是一个关键痛点:通常通过分支、按主机划分的目录、条件 shell 逻辑,或模板化(Chezmoi、Nix,或自定义工具)来解决。