工程开发
upgrade-flake avatar

upgrade-flake

更新 flake.lock 以获取最新的 Nix flake 输入版本,且不会执行完整的 NixOS 系统版本升级。

简介

upgrade-flake 工具为基于 Nix 的基础设施项目提供了一种精简且安全的依赖项输入更新流程。它专为维护 NixOS 配置的开发人员与系统管理员所设计,旨在让您能在不迁移至新的 NixOS 发行版本通道的情况下,随时更新软件包、获取安全补丁及上游改进。通过仅针对 flake.lock 文件进行操作,此工具可确保基础系统版本维持稳定,同时将个别组件(如 nixpkgs 和 home-manager)更新至最新的提交版本。

  • 将所有 flake 输入(包含 nixpkgs 和 home-manager)更新至最新的上游提交版本。

  • 在应用至活动系统前,通过内部的 just 任务执行安全的构建验证与试运行。

  • 将 flake 更新流程与主要的 NixOS 发行版本升级分开,实现受控的变更流程。

  • 提供内置的还原功能,若发生问题,可立即回退至先前的系统世代或恢复先前的 flake.lock 状态。

  • 建议结合最佳实践,包括分析 git diff 以及检查系统服务状态,以确保更新的可靠性。

  • 最适用于使用基于 flake 项目结构并搭配 just 工具的 NixOS 环境。

  • 在执行更新前,务必使用 git diff flake.lock 查看变更,以理解即将更新的版本内容。

  • 需搭配现有的 Nix flake 基础设施使用;本工具充当标准 nix flake 指令的协调层。

  • 请注意,本工具无法自动解决特定软件包中引入的重大变更;若在验证阶段发生构建失败,应检查 Nix 的错误输出以进行修复。

  • 强烈推荐给习惯使用声明式配置的用户,这类用户通常倾向通过频繁的小型更新,而非不频繁的大型系统迁移来管理环境。

仓库统计

Star 数
34
Fork 数
1
Open Issue 数
1
主要语言
Shell
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 19:00
在 GitHub 查看