NixOS 26.05 "Yarara" 发布:两万新包入仓,升级该怎么做

2026-06-01 19 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:6 分钟

NixOS 半年度发布节奏如期而至,26.05 代号 "Yarara" 正式落地。这次 Nixpkgs 仓库新增 20442 个软件包、更新 20641 个已有包——增量相当可观。与此同时,上一版 25.11 "Xantusia" 已被标记弃用,2026 年 6 月 30 日后不再收到安全补丁。如果你还在跑 25.11,升级窗口已经打开。

版本生命周期:时间线要盯紧

NixOS 每个稳定版维护期约七个月。26.05 的支持截止日是 2026 年 12 月 31 日,25.11 的安全更新截止日是 2026 年 6 月 30 日。两条线之间有半年重叠,但重叠期结束后旧版就彻底裸奔。

实际影响:如果你的生产机器跑 25.11 且暴露在公网,6 月 30 日之后任何 CVE 都不会有人为你补。计划升级的时间最好卡在重叠期内,给自己留出回滚余地。

包仓库变化:量与质

20442 个新增包意味着 Nixpkgs 覆盖面继续扩张。对开发者来说,几个值得关注的趋势:

  • 语言工具链更新:Python、Rust、Go 等主流语言的包版本普遍跟进上游,减少自行 overlay 的频率。
  • 桌面与应用:KDE、GNOME 等桌面环境的版本随上游同步,新包中不少是桌面组件。
  • 可维护性取舍:摘要提到"为了保持软件包集的可维护性"——这意味着部分过时或无人维护的包可能被移除或降级。升级后如果某个包突然消失,先查 Nixpkgs commit log 确认是否被剔除。

升级实操:从 25.11 到 26.05

升级 NixOS 稳定版的核心流程只有两步:改 channel、重建系统。以下是完整可复制的命令序列。

1. 切换 channel

# 查看当前 channel
nix-channel --list

# 将 nixos channel 切到 26.05
nix-channel --add https://nixos.org/channels/nixos-26.05 nixos

# 拉取新 channel 数据
nix-channel --update

切换后 nixos channel 指向 26.05 的包集合。--update 会下载对应的 Nixpkgs 仓库快照,耗时取决于网络,通常几分钟。

2. 重建系统

# 先构建但不切换,确认没有编译错误
nixos-rebuild build

# 确认无误后,切换到新配置
nixos-rebuild switch

nixos-rebuild switch 会激活新配置并加入 GRUB 启动项。如果新系统有问题,重启时在 GRUB 菜单选上一条配置即可回滚——这是 NixOS 最核心的安全网。

3. 用 configuration.nix 锁定状态(可选但推荐)

/etc/nixos/configuration.nix 中显式声明系统版本,方便团队协作和审计:

{ config, pkgs, ... }:

{
  # 明确标注当前运行的 NixOS 版本,方便后续升级追踪
  system.stateVersion = "26.05";

  # 基础包列表——升级后建议逐项确认是否仍存在
  environment.systemPackages = with pkgs; [
    git
    vim
    curl
    jq
  ];

  # 开启自动升级,让系统在维护期内持续接收安全补丁
  system.autoUpgrade = {
    enable = true;
    channel = "https://nixos.org/channels/nixos-26.05";
    dates = "04:00";  # 每天凌晨 4 点检查更新
  };
}

system.stateVersion 不影响实际包版本,但它告诉 NixOS 在某些需要迁移的状态文件(如数据库目录路径)上采用 26.05 的约定。不要把旧版的 stateVersion 改成新版——改这个字段只应在首次安装时设置,之后保持不变。

升级前检查清单

检查项 做法
自定义 overlay 是否兼容 在新 channel 下 nixos-rebuild build 一次,看报错
依赖的包是否被移除 nix-env -qaP <包名> 在新 channel 下搜索
服务配置是否需要迁移 对比 /etc/nixos/configuration.nix 与新版默认值
回滚路径是否畅通 确认 GRUB 菜单保留旧条目
数据卷挂载是否正常 mount 检查,NixOS 一般不碰 fstab 但 overlay 可能改

值得注意的风险点

  • 包被移除:Nixpkgs 为保持可维护性会定期清理无人维护的包。如果你依赖的某个小众包消失了,短期方案是用 nixpkgs.overlays 从旧版摘取定义,长期方案是自己接手维护并提交 PR。
  • 配置选项废弃:部分 NixOS 模块选项在新版中被标记 deprecated 或直接移除。nixos-rebuild switch 时会有警告,务必逐条阅读,不要忽略。
  • stateVersion 不要乱改:前面强调过,改 stateVersion 可能导致 PostgreSQL、Redis 等服务的数据目录路径迁移出问题。

26.05 的包增量说明社区贡献持续活跃。对现有用户来说,升级路径清晰、回滚机制可靠,唯一要紧的是赶在 25.11 安全更新截止日(2026 年 6 月 30 日)之前完成切换。跑一遍 nixos-rebuild build,确认无报错,再 switch——几分钟的事,换来七个月的安全覆盖。


相关推荐