SuperAPI AI 工具集

nix-knowledge-patch

部署与运维

查看项目

更新于 11-02 01:38

技能介绍

nix-knowledge-patch 是一个面向 Nix 生态的参考型技能,适用于修改 Nix 表达式、Nix CLI 集成、flake、store 与缓存、NixOS 模块、Nixpkgs 包以及 Home Manager 配置的场景。其核心用法是:在保留旧选项、旧输出格式、旧包名、旧服务默认值或旧构建器接口之前,先查阅对应主题的参考内容,确认当前推荐做法与迁移要求。

内容按主题分为五部分。Nix 语言、CLI、flake 与 API 部分涵盖求值、flake 输入与锁、CLI 行为、JSON 格式、安装器以及 C 和 C++ API。存储、构建、传输与缓存部分涵盖 store 设置、垃圾回收、构建器、SSH 与 HTTP 传输、S3 与二进制缓存以及钩子。NixOS 系统与服务部分涵盖重建与启动流程、网络、systemd、安全、数据库和服务迁移。Nixpkgs 打包部分涵盖构建器、钩子、包作用域、语言生态以及库与表达式迁移。Home Manager 部分涵盖激活、profile、state-version 行为、程序与服务迁移、XDG 与 Darwin 集成。

文档给出了若干迁移要点示例:路径字面量 lint 使用接受 ignore、warn、fatal 的三态设置;整数按有符号 64 位处理,算术溢出属于求值错误;结构化 derivation 应设置 __structuredAttrs = true,而非向 __json 环境变量序列化 JSON;CLI 与 JSON 接口需选用当前形式,例如使用 nix profile add、为 nix path-info --json 传入 --json-format、使用 derivation JSON 版本 4。flake 与源码部分涉及在输入上声明仓库特性、锁生成对注册表的处理,以及 prefetch、archive、formatter 等显式源码操作。存储与缓存部分涉及临时构建位置、build-cores、fsync-store-paths、nix store roots-daemon、递归删除保留存活路径、缓存元数据生命周期、mTLS 与 S3 凭据等。NixOS 部分涉及 initrd 默认使用 systemd、nixos-rebuild-ng 与 Rust 系统切换、服务对 network-online.target、postgresql.target 和 ACME 证书服务的显式依赖、settings 属性集与密钥文件选项、状态版本作为迁移开关。Nixpkgs 部分涉及 buildGoModule、cargoHash 与 rustPlatform.fetchCargoVendor、Python 的 pyproject、pnpm 与 Yarn 钩子、更严格的 derivation 校验以及被移除包名和库名的替换。Home Manager 部分涉及 home-manager switch --rollback 与 --specialisation、激活期间用户服务重启、startAsUserService、minimal 模式以及程序配置迁移。

文档末尾提供核查清单:确认变更属于 Nix、NixOS、Nixpkgs 还是 Home Manager;将状态版本门控与包或可执行文件版本分开检查;通过求值而非字符串搜索验证选项类型与重命名路径;以显式格式版本测试机器可读输出;在并发任务与垃圾回收场景下测试 store 与钩子变更;查阅主题参考以获取默认值、应急开关与精确替换项。

适用场景为 Nix 相关配置修改、版本升级与迁移审查。限制方面:资料未说明该技能的安装方式、运行命令、平台支持、收费或价格信息,暂未提供。