NixOS 26.05 “Yarara” 已经发布,写一份配置文件就能管整个系统
如果你被 apt 卸掉过依赖包,被 dnf 留下过半升级的状态机,NixOS 会让你觉得是另一种操作系统:每个包、每个服务、每个内核参数,都写在一个文本文件里;这个文件构建出来的系统,在任何机器上都是同一份、出错了可以一键回到上一个版本。最新版 NixOS 26.05 “Yarara” 于 2026 年 5 月 30 日发布,是当下应该装的版本。

26.05 这次改了什么
本次发布由 yayayayaka 和 jopejoe1 主持,2842 位贡献者合入了 59703 个 commit。要点:
- systemd stage 1 默认启用。initrd(Stage 1)改基于 systemd,旧的脚本实现已弃用、26.11 会彻底移除。
- GNOME 50 “Tokyo”。默认桌面大版本升级,可访问性与显示处理有改进。KDE Plasma 用户仍走 Plasma 6。
- GCC 15 + LLVM 21。C 编译工具链刷新,自行打包 C/C++ 的同学建议回归测试一遍。
- 包库大换血。新增 20442 个包、更新 20641 个、剔除 17532 个包,目的是”保持可维护且安全”。依赖小众包的先确认是否还在。
- 26.05 是最后一个支持
x86_64-darwin的版本。维护 Nix-on-macOS 的同学请固定在此版本;26.11 会砍掉该平台。
Yarara 的安全与 bugfix 支持期到 2026-12-31,之后 26.11(代号 Zokor)上线。生产建议固定到一个 release 上。
怎么装 NixOS 26.05
按你的用途挑 ISO:
- 图形 ISO(约 2.3 GB):自带 GNOME / KDE / XFCE 与若干应用,同时也是 Live CD,可先试用再装。 下载。
- 最小 ISO:无图形、体积小,适合做服务器。
按架构(x86_64 / aarch64)选好镜像,用 dd 或 Balena Etcher 烧进 U 盘并启动。图形安装器会引导你选磁盘、键盘、建用户、装 GNOME。服务器则可走最小文本安装器。
云上 官方 AMI 同步发到全 AWS 区域,owner 427812963091,镜像名匹配 nixos/26.05*。不要硬编码 AMI ID,从 Terraform / AWS API 拉最新,避开 90 天的 deprecation。
装完重启进入默认 NixOS,开终端。下面的内容才是 NixOS 有意思的地方。
整个系统在一个文件里
这是思维模型最大的转变。一切都在 /etc/nixos/configuration.nix:

一个能启动 GRUB + GNOME + 几个系统包的最小配置:
{ config, pkgs, ... }:
{
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
environment.systemPackages = with pkgs; [
firefox git vim neovim htop
];
system.stateVersion = "26.05";
}应用:
sudo nixos-rebuild switch整套 /nix/store 体系会按这个文件重建、原子地切换、当前系统与描述完全一致。在 Debian 系发行版上,这一行等价于 apt + dnf + grub-install + systemctl enable + 手动重启;NixOS 把这一切压成一个事务、一条日志。
system.stateVersion = "26.05"; 是 Nix 的”我从这个版本开始”标记,不要往下调,保留自动升级与某些迁移路径。
用 nix-shell 拉一个可复现的开发环境
同一招对非 root 项目也好用。比如同时要 Rust + Node 22,就在项目里写 shell.nix:

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
name = "rust-web";
buildInputs = with pkgs; [
rustc cargo rust-analyzer
nodejs_22
openssl pkg-config
];
}进项目目录、nix-shell 起手,26.05 版的 <nixpkgs> 上对应的工具链就上 $PATH。主机系统不动,提交 shell.nix,每个队友、每台 CI 都拿到同一份版本。
临时试验用 nix-shell -p python3;长期工作流配 direnv + .envrc 的 use nix; 是标准做法。
原子升级与即时回滚
这是把人”转粉”的部分。每次 sudo nixos-rebuild switch,NixOS 都在 /nix/store 写入一个新 generation,并加进 GRUB。老 generation 留着不删;内核升级把无线网卡踩崩了?重启选旧 generation,回到升级前。
不重启也行:
sudo nixos-rebuild switch --rollback当前活跃版本被上一版替换,包和服务换掉,登录态还在。不用 dpkg --configure -a、不用 apt-mark hold、也不会留下”等周末再修”的状态。

查看当前系统保留的 generation:
sudo nix-env --list-generations --profile /nix/var/nix/profiles/system配 nix-collect-garbage -d 一年清一次,避免 /nix/store 无限增长。
上手初期几条经验
- 固定 channel,生产别换。
nixos-26.05和nixos-unstable切换会让系统针对一个游动的 target 重建。个人机器用<nixpkgs>,生产用 pinned channel 或 flake input。 - 直接改
/etc/nixos/configuration.nix。nix-env -iA nixos.firefox也能装,但用户层安装不进系统 profile,下一次nixos-rebuild看不到,回滚 generation 时这些包也会被一并拿掉。要装就写到文件里。 - 多机共享用 flake,个人用 channel。Flake 把每个输入按哈希钉死,跨主机复现完全一致;channel 用着轻。两者都活、都不过时。
- CLI 是一切真相。找不到的二进制就用
nix-shell -p拉,或加到environment.systemPackages。除了nix search不需要别的”apt-file 等价物”。
NixOS 适合什么场景
用一周就会发现它的卖点不止是折腾:云上可复现的 VM 镜像、跨队友跨 CI 的开发环境、原子化的 Kubernetes 节点配置(内核补丁踩到驱动可以秒回滚)、每台机器一个 configuration.nix 跟应用代码一起入库。
如果没试过声明式 Linux 发行版,26.05 是好的起点 — Yarara 的改动大多是内部(systemd Stage 1、GCC 15、桌面大版本)而不是面向用户的 schema 重写。烧个图形 ISO 进去,登进去,改一个文件、sudo nixos-rebuild switch,剩下的小时内大概就懂了。一个文件,就是整个系统。
官网:nixos.org。
评论