你不必使用 Nix 来管理你的点文件。

主要观点:

  • 新人常过度使用 Nix 致生活变难,虽使系统更具重现性但有弊端,如在普通用户文本文件迭代循环中插入 Nix 评估和构建。
  • Nix 生态有多种工具,各有优缺点,如在跨语言构建、获取编译软件、图像式配置管理、统一配置语言等方面表现出色,但评估时间长、文档差等是弱点。
  • 不应过度依赖 Nix 用于所有系统设置,如用户应用配置等,用 Nix 管理 dotfiles 时mkOutOfStoreSymlink在 flakes 环境下存在问题。
  • 对于 dotfiles ,简单的 19 行 bash 脚本创建 symlink 到 Git 仓库效果好,也可通过其他方式如 wrapper 脚本在配置切换时进行 symlink 操作,还可通过插件管理器实现 pinning 。
  • 对于频繁变化的软件部署,尚无很好的解决方案,现有方式较复杂。

关键信息:

  • Nix 包括多种实现及相关生态工具,如 NixOS、home-manager 等。
  • Nix 生态优势:跨语言构建系统、获取编译软件、图像式配置管理、统一配置语言。
  • Nix 生态弱点:评估时间长、文档差。
  • 避免过度使用 Nix ,如用于 user application 配置会导致慢评估和构建,其他配置管理策略也适用。
  • home-manager 的mkOutOfStoreSymlink在 flakes 环境下的问题及解决办法。
  • dotfiles 简单解决方案及相关操作,如通过 bash 脚本创建 symlink ,使用插件管理器 pinning 等。

重要细节:

  • Nix 评估缓存仅对 flakes 有效且作用有限,大型构建易导致长评估时间。
  • 文档差是一直存在的问题,系统不易被检查且了解工具的人少。
  • 对于 editor 插件等,有 lazy.nvim 等插件管理器实现 pinning ,也可通过git-submodule等方式。
  • 对于软件部署,尚无很好的 Nix 解决方案,如nixos-container可改进。
阅读 10
0 条评论