Agent Skills
返回列表
🔒

NixOS 系统管理

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/nixos-ai-skill。

技能介绍

要解决的具体问题

NixOS 与 Nix 生态的文档分散在多个位置:nix.dev 的教程与最佳实践、来自 NixOS/nixpkgs 的 NixOS Manual、Nix Pills 的渐进学习材料,以及 Release Wiki 中的发布流程说明。当你真正需要配置系统时,很容易在以下问题上反复查找:某个选项是 NixOS module option(例如 services.nginx.enable = true;)还是 Nix language expression(例如 pkgs.mkDerivation { ... });是用 configuration.nix 还是基于 flake 的配置;如何用 callPackage 替代裸 import 来编写更稳健的打包逻辑;又或者在排查服务启动失败、网络配置错误或系统升级异常时,应该先打开哪一份文档。

核心能力与工作方式

该技能把上述来源整理成 references/ 目录下的结构化参考文件,并根据用户问题定位到匹配的主题文件作为回答基础。它覆盖的领域包括:

  • 安装与升级:Nix 包管理器安装、NixOS 在不同虚拟化与代理环境下的安装、nixos-upgrading、修改配置
  • 语言与概念:Nix language tutorial、flakes 概念与用法、callPackage 设计模式、模块系统、固定 nixpkgs 版本
  • NixOS 配置:配置语法与模块化、包管理、用户管理、网络与防火墙、文件系统(LUKS、SSHFS、OverlayFS)、显示服务器、内核配置、Kubernetes、配置 profile
  • 系统管理:服务管理、日志、回滚、故障排查、启动问题、容器(声明式与命令式)
  • 开发与打包:编写 NixOS modules(options、类型、断言)、测试、构建系统镜像、为 nixpkgs 打包现有软件、交叉编译
  • 教程与配方:VM 配置、Docker 镜像构建、可引导 ISO、VM 集成测试、Terraform 部署、分布式构建、Raspberry Pi、远程机器配置、binary cache、最佳实践与配方
  • 发布流程:NixOS 发布流程、角色、branch-off、beta、freeze

当本地参考文件不够时,技能会从 raw GitHub 获取 nix.dev、NixOS Manual 与 Nix Pills 的最新文档。答案会区分 module options 与 Nix language expressions,示例优先使用当前语法;在涉及 flakes 时同时展示 classic channels 与 flakes 两种方式。新手会被引导到 references/first-steps.md 或 references/nix-pills.md,排障则优先查看 references/troubleshooting.md 与 references/faq.md,系统级问题则参考 references/nixos-administration.md。

适用边界与注意点

该技能的工作方式依赖 references/ 中的文件与 raw GitHub 的实时文档,回答质量取决于能否在本地文件中匹配到对应主题。若问题超出参考覆盖范围,它需要回退到在线文档,此时得到的建议可能不如结构化文件那样稳定。同时,技能在展示示例时会同时给出 classic 与 flakes 写法,适合需要从旧配置迁移或同时维护多种环境的人,但也意味着你需要自行判断哪一种更符合当前系统状态。

使用场景

  • 在迁移到 flake 配置前,需要对比 classic channels 与 flakes 两种 NixOS 配置写法
  • 排查服务启动失败时,要定位 module options 与 Nix 表达式的写法差异并修正配置
  • 给 nixpkgs 新增包时,要用 callPackage 模式替代裸 import 并补齐依赖参数
  • 升级 NixOS 后出现异常,要参考 troubleshooting 与 nixos-administration 文档做回滚或修正

适合人员

  • 正在从 channels 迁移到 flakes 的 NixOS 用户,需要确认两种配置写法差异
  • 负责维护内部 NixOS 集群的运维工程师,需要排查服务、网络和容器故障
  • 为 nixpkgs 贡献包或处理交叉编译的开发者,需要 callPackage 与打包规范指导
  • 编写 NixOS 模块和测试的工程师,需要了解 options、断言、模块系统与测试流程