NixOS 运维实战:升级、回滚、GC 与日常维护
NixOS 运维与维护实战:系统升级流程(稳定版/滚动版)、channel 与 flake 升级对比、nixos-rebuild 各种子命令、回滚与世代管理、垃圾回收与 store 瘦身、磁盘空间排查、备份与恢复、日常巡检清单。
posts
NixOS 运维与维护实战:系统升级流程(稳定版/滚动版)、channel 与 flake 升级对比、nixos-rebuild 各种子命令、回滚与世代管理、垃圾回收与 store 瘦身、磁盘空间排查、备份与恢复、日常巡检清单。
NixOS 声明式网络配置实战:接口与地址、DHCP/静态 IP、WiFi 与 wpa_supplicant、DNS 与解析、路由与多网卡、防火墙(iptables/nftables 声明式)、端口开放、NAT 与转发、tun/tap 与 VPN、WireGuard 配置。
NixOS 服务管理实战:声明式 systemd 服务、服务依赖与开机自启、环境变量与秘钥、NixOS 容器(NixOS Containers)、常用服务部署(nginx/postgres/redis/cron)、服务监控与开机启动时序。
NixOS 密钥管理实战:为什么配置里不能写明文密钥、sops-nix(SOPS+age)工作流、agenix 声明式秘钥、多主机密钥分发、CI 与拉取密钥、密钥轮换与审计、配合 systemd 服务的秘钥注入。
NixOS 存储管理实战:磁盘分区与挂载、swap 配置、LVM 逻辑卷、Btrfs 子卷/快照/压缩、ZFS 集成、挂载选项与 fstab 声明式管理、磁盘配额与监控、故障恢复。
Nix Flake 模板实战:flake 模板体系、常用模板(多语言/多场景)、自建模板、模板引用与参数化、多输出组织(devShells/packages/checks)、模板与 CI 集成、常见坑与最佳实践。
为树莓派、ARM 服务器交叉编译是 Nix 的王牌场景。本文深入 nixpkgs overlay 机制、cross 工具链(aarch64 目标)、lib.genAttrs 多架构矩阵、异构编译流程与常见坑,带你写出可同时产出 x86_64 与 aarch64 产物的 flake。
开发环境的可复现比构建更棘手——语言版本、环境变量、pre-commit 钩子、IDE 集成都要一致。本文对比 devShells、devenv.sh 两种主流方案,详解多语言工具链、direnv 自动加载、pre-commit 集成与团队协作的最佳实践。
NixOS 模块系统是声明式系统配置的心脏。本文深入 options 声明、模块合并语义、mkOption/mkIf/mkMerge/mkDefault 的优先级规则、以及如何开发可复用的自定义模块,从源码语义讲透为什么 NixOS 配置能「合并而不冲突」。
把 Nix 接入 CI 的最大价值是「一次构建、处处复用」——通过 Cachix 等二进制缓存,push 和 PR 可以共享完全相同的 store 路径。本文详解 GitHub Actions 集成 Nix、Cachix 推送/拉取、derivation 缓存复用与远程构建,附完整可运行工作流。
Flakes 已成为 Nix 生态的事实标准,但「能用」和「用得对」是两回事。本文从企业工程视角总结 inputs/outputs 组织、flake.lock 锁文件治理、多文件模块化拆分、模板复用与 monorepo 级 flake 布局,附带可直接落地的目录骨架与代码。
Nix 是一门纯函数式、惰性求值的领域语言,理解其核心语义是从「会用」走向「精通」的分水岭。本文深入函数与柯里化、惰性求值、attrset 操作、let/inherit/rec/with 绑定、override 与 fix 定点组合,用大量可运行表达式讲透 Nix 语言的底层机制。
将 NixOS 配置远程部署到多台服务器需要专门的工具。本文对比 NixOps、deploy-rs 和 Colmena 三种主流方案,详解配置编写、部署流程和回滚机制。
NixOS 是围绕 Nix 包管理器构建的 Linux 发行版,实现了声明式的系统配置。本文详解 configuration.nix 结构、模块系统、系统重建、服务管理和网络配置。
Nix 表达式语言是一种纯函数式领域特定语言,用于描述软件包和系统配置。本文详解 Nix 的语法特性、数据类型、函数定义、惰性求值和模块系统。
Nix 提供了比传统 Dockerfile 更优的容器镜像构建方案。本文详解 nixpkgs dockerTools、OCI 镜像构建、层缓存优化、多阶段构建以及与传统 Docker 工作流的对比。
Nix 包管理器通过纯函数式方法实现了可复现、可回滚的软件包管理。本文详解 nixpkgs 仓库结构、derivation 原理、常用命令和社区生态。
Nix Shell 提供了声明式、可复现的开发环境。本文详解 nix-shell、nix develop、flake 的 devShells、shell hooks、以及团队协作中的可复现开发环境实践。
Nix Flakes 是自 Nix 2.4 引入的实验性特性,现已成为 Nix 生态系统的事实标准。本文详解 flake.nix 结构、inputs/outputs、flakes 与传统方式的对比以及 flake.lock 版本锁定机制。
Home Manager 将 Nix 的声明式配置管理从系统级延伸到用户级。本文详解 home.nix 结构、用户包管理、dotfiles 管理、与 NixOS 的协同以及多主机配置复用。