NixOSを25.05から25.11にアップデートした

先月末11月30日(日)に、NixOSの新しいバージョン25.15 "Xantusia"がリリースされた。
コードネームのXantusiaとは、アメリカの南部からメキシコの北部にかけて生息するトカゲの一種を指す。NixOSのコードネームは各バージョン毎に生物の名称が採用されている。
NixOSの新バージョンがリリースされてから半月程経ってしまったが、公私でいろいろあってメンタルがグダグダな状態から回復傾向にある今、自宅環境にてファイルサーバとして稼働しているNixOSをアップデートしてみた。


NixOS 25.11の主な内容
NixOS 25.11のリリースノートに変更箇所や追加された箇所などが長々と記載されている。非常に大雑把にまとめると以下の内容となる。
・サポート期間:2026年6月30日までの7ヶ月間、バグフィックスやセキュリティアップデートが提供される
・systemd initrdに対し、Rustベースのbashless初期化システムであるnixos-initを追加
・firewalldについて、services.firewall経由の設定や既存のnetworking.firewallのバックエンドとしての設定が可能
・デスクトップ環境GNOMEがバージョン49にアップデート
・nixos-rebuild-ng(nixos-rebuildをPythonで完全に書き換えたもの)がデフォルトで有効化
・Limineブートローダーのセキュアブートが、boot.loader.limine.secureBoot.enableで有効化が可能になった
・インストールされるPostgreSQLのデフォルトのバージョンが17になった
・詳細は下記のリンク先のリリースノートを参照
 https://nixos.org/manual/nixos/stable/release-notes#sec-release-25.11
 https://nixos.org/blog/announcements/2025/nixos-2511/
 
前のバージョンNixOS 25.05のサポートに関しては、上記の25.11のAnnouncementsに記載が有る。
新バージョンのリリースから約1ヶ月後の2025年12月31日までセキュリティアップデートがあるが、他の多くのLinuxディストリビューションや*BSD等と比較すると、NixOSのサポート期間は6ヶ月間で非常に短期間な事が分かる。



NixOS 25.11のリリースノート
リリースノートは英語版のみ提供。
自分の環境ではWebブラウザFirefoxに実装されている翻訳機能で日本語に訳して目を通した。
https://nixos.org/manual/nixos/stable/release-notes#sec-release-25.11



NixOSのアップデート手順
前回と同様に、過去に投稿した以下の記事のおよび、NixOSの公式マニュアルのUpgrading NixOSの内容に沿ってアップデートを実行した。
アップデートの完了後、NixOSおよびLinuxカーネルのバージョン確認とNixOSの中で動作しているファイルサーバSambaの動作確認を実施した。
https://nixos.org/manual/nixos/stable/#sec-upgrading Upgrading NixOS
https://debslink.hatenadiary.jp/entry/20250421/1745236668 NixOSのパッケージやOSのアップデートに関するメモ
https://debslink.hatenadiary.jp/entry/20250524/1748072722 NixOSを24.11から25.05にアップデートした



当方の環境
ホスト機:macOS 15.7.2 / MacBook Pro 2020 / RAM: 16GB / CPU: Intel Core i5 2.0GHz
仮想化環境:Oracle VirtualBox 7.2.4 r170995
ゲストOS:NixOS 25.05
今回はVirtualboxの中でファイルサーバとして動作しているNixOS 25.05を25.11にアップデートする。



NixOSを25.05から25.11にアップデート
では早速、NixOSを25.05から25.11にアップデートする手順を開始する。
アップデートの前に、現段階のNixOSのシステムの情報を出力させる。
unameコマンドを叩き、NixOSで動作しているLinuxのカーネルのバージョンを確認。アップデート前の状態ではLinuxカーネルのバージョン6.12.30が動いている事が分かる。

[jpmtkvmsv47:~ ]# uname -a
Linux jpmtkvmsv47 6.12.30 #1-NixOS SMP PREEMPT_DYNAMIC Thu May 22 12:29:54 UTC 2025 x86_64 GNU/Linux
[jpmtkvmsv47:~ ]# 

 
続いて、/etc/os-releaseの内容を出力しNixOSのバージョンなどを確認。
NixOS 25.05が稼働している事が確認出来る。

[jpmtkvmsv47:~ ]# cat /etc/os-release 
ANSI_COLOR="0;38;2;126;186;228"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="25.05.802216.55d1f923c480"
CPE_NAME="cpe:/o:nixos:nixos:25.05"
DEFAULT_HOSTNAME=nixos
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
ID_LIKE=""
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 25.05 (Warbler)"
SUPPORT_END="2025-12-31"
SUPPORT_URL="https://nixos.org/community.html"
VARIANT=""
VARIANT_ID=""
VENDOR_NAME=NixOS
VENDOR_URL="https://nixos.org/"
VERSION="25.05 (Warbler)"
VERSION_CODENAME=warbler
VERSION_ID="25.05"
[jpmtkvmsv47:~ ]# 

 
NixOSで稼働しているSambaのバージョンも確認。
SambaのバージョンはNixOS 24.11の頃と同じである事が分かる。

[jpmtkvmsv47:~ ]# smbd -V
Version 4.20.4
[jpmtkvmsv47:~ ]#

 
Sambaの他に利用している主なパッケージのバージョンは以下のとおりである。

[jpmtkvmsv47:~ ]# zsh --version
zsh 5.9 (x86_64-pc-linux-gnu)
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# nvim --version
NVIM v0.11.1
Build type: Release
LuaJIT 2.1.1741730670
Run "nvim -V1 -v" for more info
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# chronyd --version
chronyd (chrony) version 4.6.1 (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
[jpmtkvmsv47:~ ]# 

 
アップデート前のバージョン確認を終えたところで、これよりNixOSのアップデートに進む。
sudo nix-channel --addコマンドを実行し、NixOSのチャンネルをアップデート先のバージョンに指定する。
今回はバージョン25.05から25.11にアップデートする為、チャンネルをnixos-25.11に指定する。

[jpmtkvmsv47:~ ]# sudo nix-channel --add https://channels.nixos.org/nixos-25.11 nixos
[sudo] password for hogehoge: 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# sudo nix-channel --update nixos 
unpacking 1 channels...
[jpmtkvmsv47:~ ]# 

 
エラーを吐く事無くプロンプトが返ってきた。
続いてsudo nixos-rebuild switch --upgradeコマンドを実行し、新しいバージョンのNixOSおよびNixOSのシステムパッケージをビルドする。
この手順によりNixOSが指定のバージョンに更新される。
nixos-rebuild switch --upgradeコマンドは、他のLinuxディストリビューションで言うyum upgradeやapt upgradeのようなものである。

[jpmtkvmsv47:~ ]# sudo nixos-rebuild switch --upgrade
unpacking 1 channels...
these 77 paths will be fetched (79.87 MiB download, 272.22 MiB unpacked):
  /nix/store/fwfpzqrvzhpjp91rbnq64z07diyicbwh-acl-2.3.2
  /nix/store/12qcfbv6bgmxi1jd2dcddy25ijpcgj60-attr-2.5.2
  /nix/store/x0dfvqf2wmp3q3n3i85r4jwdgbw6d8f1-aws-c-auth-0.9.1
  /nix/store/zcfjv5z1v84svg8xnib116grhd32qa8f-aws-c-cal-0.9.2
:
省略
:
restarting sysinit-reactivation.target
reloading the following units: dbus.service, firewall.service, reload-systemd-vconsole-setup.service
restarting the following units: network-addresses-enp0s3.service, sshd.service, systemd-journald.service, systemd-udevd.service
starting the following units: chronyd.service, kmod-static-nodes.service, logrotate-checkconf.service, network-setup.service, NetworkManager-wait-online.service, NetworkManager.service, nscd.service, resolvconf.service, samba-nmbd.service, samba-smbd.service, samba-winbindd.service, systemd-modules-load.service, systemd-oomd.socket, systemd-sysctl.service, systemd-udev-trigger.service, systemd-vconsole-setup.service, virtualbox.service
the following new units were started: lastlog2-import.service, NetworkManager-dispatcher.service, sysinit-reactivation.target, systemd-hostnamed.service, systemd-tmpfiles-resetup.service
Done. The new configuration is /nix/store/9yhc1y68m8xxrdy9dk6znqmfh33q7v3i-nixos-system-jpmtkvmsv47-25.11.1335.09eb77e94fa2
[jpmtkvmsv47:~ ]# 

 
NixOSの再起動中もエラーを吐く事は無く、ビルドは成功した。
ビルドの実行から完了まで約3分。前回の25.05へのアップデートと同様に早い。
ここでrebootコマンドを実行し、NixOSを再起動させる。

[jpmtkvmsv47:~ ]# sudo reboot                        
[sudo] password for hogehoge: 

Broadcast message from root@jpmtkvmsv47 on pts/1 (Sun 2025-12-14 10:58:10 JST):

The system will reboot now!
:
省略
:

 
 

アップデート後の動作確認
無事に25.11にアップデートが出来た。
これよりアップデート後のNixOSのシステムの情報および導入済みのパッケージのバーションを出力させる。
まずはunameコマンドを叩き、NixOSで動作しているLinuxのカーネルのバージョンを確認。
Linuxのカーネルのバージョンが6.12.30から6.12.61にアップデートされている事が分かる。

[jpmtkvmsv47:~ ]# uname -a
Linux jpmtkvmsv47 6.12.61 #1-NixOS SMP PREEMPT_DYNAMIC Sat Dec  6 21:25:03 UTC 2025 x86_64 GNU/Linux
[jpmtkvmsv47:~ ]# 

 
続いて、/etc/os-releaseの内容を出力しNixOSのバージョンなどを確認。
NixOS 25.11が稼働している事が分かる。

[jpmtkvmsv47:~ ]# cat /etc/os-release 
ANSI_COLOR="0;38;2;126;186;228"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="25.11.1335.09eb77e94fa2"
CPE_NAME="cpe:/o:nixos:nixos:25.11"
DEFAULT_HOSTNAME=nixos
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
ID_LIKE=""
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 25.11 (Xantusia)"
SUPPORT_END="2026-06-30"
SUPPORT_URL="https://nixos.org/community.html"
VARIANT=""
VARIANT_ID=""
VENDOR_NAME=NixOS
VENDOR_URL="https://nixos.org/"
VERSION="25.11 (Xantusia)"
VERSION_CODENAME=xantusia
VERSION_ID="25.11"
[jpmtkvmsv47:~ ]# 

 
Sambaのバージョンも確認。
Sambaのバージョン4.20.4から4.22.5にアップデートされた事がわかる。

[jpmtkvmsv47:~ ]# smbd -V
Version 4.22.5
[jpmtkvmsv47:~ ]# 

 
続いて、Sambaの他にアップデートされたパッケージがあるか確認。
Neovimが0.11.1から0.11.5にアップデートされている事がわかる。
chronyが4.6.1から4.8にアップデートされている事がわかる。
zshはバージョン5.9のままだ。

[jpmtkvmsv47:~ ]# zsh --version
zsh 5.9 (x86_64-pc-linux-gnu)
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# nvim --version
NVIM v0.11.5
Build type: Release
LuaJIT 2.1.1741730670
Run "nvim -V1 -v" for more info
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# 
[jpmtkvmsv47:~ ]# chronyd --version  
chronyd (chrony) version 4.8 (+CMDMON +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +NTS +SECHASH +IPV6 -DEBUG)
[jpmtkvmsv47:~ ]# 

 
Sambaに対し、systemctlコマンドをstatusオプションを付けて実行。
Active: active (running) となっており、Sambaが問題無く立ち上がっている事を確認。

[jpmtkvmsv47:~ ]# systemctl status samba-smbd.service 
● samba-smbd.service - Samba SMB Daemon
     Loaded: loaded (/etc/systemd/system/samba-smbd.service; enabled; preset: ignored)
     Active: active (running) since Sun 2025-12-14 10:58:47 JST; 2min 46s ago
 Invocation: b4883dfc48104cbc8ba87398abe32e75
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
   Main PID: 865 (smbd)
     Status: "smbd: ready to serve connections..."
         IP: 0B in, 0B out
         IO: 2.1M read, 16K written
      Tasks: 3 (limit: 4625)
     Memory: 8.9M (peak: 9.1M)
        CPU: 61ms
     CGroup: /system.slice/system-samba.slice/samba-smbd.service
             ├─865 /nix/store/8im3ska1wv3pzb2fwlcnczbcqqciw2gx-samba-4.22.5/sbin/smbd --foreground --no-process-group
             ├─869 "smbd: notifyd" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             └─870 "smbd: cleanupd" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Dec 14 10:58:47 jpmtkvmsv47 systemd[1]: Starting Samba SMB Daemon...
Dec 14 10:58:47 jpmtkvmsv47 systemd[1]: Started Samba SMB Daemon.
[jpmtkvmsv47:~ ]# 

 
最後に、NixOSで動いているファイルサーバの動作確認を実施。ホスト機側からNixOS内のSamba公開ディレクトリに接続を試みる。
以下の画像のとおり、公開ディレクトリにアクセス出来た事を確認。
尚、VirtualBoxの仮想マシン一覧にて表示されている仮想マシン名はアップデート後もそのままなので、気になる人は利用者側にて手動で修正する。
 

 
 

もしアップデートに失敗したら
NixOSを再起動、またはNixOSを強制的に落としてから再度立ち上げ、「Reboot Into Firmware Interface」の選択画面にて前の世代のNixOSを選択。アップデートする直前のプロファイルを選択しNixOSを立ち上げる事でロールバックを実行する。
以下の例の場合、上から2番目のGeneration 5の行(場合によってはGeneration 4などもっと前の世代)を選択しEnterキーを叩くとアップデート前のNixOSが立ち上がる。

  NixOS (Generation 6 NixOS Xantusia 25.11.1335.09eb77e94fa2 (Linux 6.12.61), built on 2025-12-14)
  NixOS (Generation 5 NixOS Warbler 25.05.802216.55d1f923c480 (Linux 6.12.30), built on 2025-05-24)
   NixOS (Generation 4 NixOS Vicuna 24.11.715519.ebe2788eafd5 (Linux 6.6.82), built on 2025-04-10)
   NixOS (Generation 3 NixOS Vicuna 24.11.715519.ebe2788eafd5 (Linux 6.6.82), built on 2025-04-10)
   NixOS (Generation 2 NixOS Vicuna 24.11.715519.ebe2788eafd5 (Linux 6.6.82), built on 2025-04-10)
   NixOS (Generation 1 NixOS Vicuna 24.11.715519.ebe2788eafd5 (Linux 6.6.82), built on 2025-04-10)
                                  Reboot Into Firmware Interface
------------------------------------------------------------------------------------------------------
                                            Boot in 6 s.

 
 
今回はここまで。
自端末内のVirtualBoxの中でファイルサーバとして稼働しているNixOSのバージョンを25.05から25.11にアップデートを試み、想定どおりNixOSのアップデートが出来た事、アップデート後もファイルサーバにアクセス出来た事、そして一部のパッケージもアップデートされる事が確認出来た。
 

実を言うと、NixOS 25.05から25.11へのアップデートは一度失敗している。
数日前にアップデートを実行した際は、ビルドが以下で終わった。ログの最終行にdied with何とかってログが出力されており正常終了には見えない。

:
省略
:
building '/nix/store/3hs2w4mqvkw600wnlwbrnqh60s083ms4-system-path.drv'...
pkgs.buildEnv warning: colliding subpath (ignored): `/nix/store/xwli7sbk8gkbxf4h7dd88lb4rr390qn6-mount.vboxsf/bin/mount.vboxsf' and `/nix/store/xyz6pyxnqnp804xqykmcpack1mzq3p8h-VirtualBox-GuestAdditions-7.2.4-6.12.61/bin/mount.vboxsf'
pkgs.buildEnv warning: colliding subpath (ignored): `/nix/store/p799x38yzq1nzcw0y6hzs2qxad4qx698-nix-zsh-completions-0.5.1/share/zsh/site-functions/_nixos-rebuild' and `/nix/store/l43yyd7lhq2512y7mwj1grhk6qnicp32-nixos-rebuild-ng-25.11/share/zsh/site-functions/_nixos-rebuild'
pkgs.buildEnv warning: colliding subpath (ignored): `/nix/store/zs9lk6bqf0rxjbg7y5cw93l8kmczwx7j-neovim-0.11.5/share/applications/nvim.desktop' and `/nix/store/fbjyiz6lv3w54nzls39g2j88dvq82ixx-neovim-0.11.5/share/applications/nvim.desktop'
pkgs.buildEnv warning: colliding subpath (ignored): `/nix/store/zs9lk6bqf0rxjbg7y5cw93l8kmczwx7j-neovim-0.11.5/bin/nvim-python3' and `/nix/store/fbjyiz6lv3w54nzls39g2j88dvq82ixx-neovim-0.11.5/bin/nvim-python3'
pkgs.buildEnv warning: colliding subpath (ignored): `/nix/store/zs9lk6bqf0rxjbg7y5cw93l8kmczwx7j-neovim-0.11.5/bin/nvim' and `/nix/store/fbjyiz6lv3w54nzls39g2j88dvq82ixx-neovim-0.11.5/bin/nvim'
created 9340 symlinks in user environment
free(): invalid pointer
Command 'nix-build '<nixpkgs/nixos>' --attr config.system.build.toplevel --no-out-link' died with <Signals.SIGABRT: 6>.
[jpmtkvmsv47:~ ]# 

 
ビルド時に吐かれたログの最終行をGoogleにて検索したところ、以下のリンク先に辿り着いた。
業務で疲れ切った状態で以下のリンク先の内容を読んだら、対処が面倒になったのでそのまま放置。
NixOS自体は日々頻繁に更新されている事から数日待つ事にし、バックアップ済みのNixOS 25.05をVirtualBoxにリストアし、本日NixOSのアップデートを再施行したら成功した。
https://discourse.nixos.org/t/various-packages-failing-to-build-in-nixos-rebuild/70421/6
 
 

参照サイト
https://nixos.org/ Nix & NixOS Declarative builds and deployments
https://nixos.org/manual/nixos/stable/ NixOS Manual
https://nixos.org/manual/nixos/stable/#sec-upgrading Upgrading NixOS
https://nixos.org/manual/nixos/stable/release-notes#sec-release-25.11 Release Notes
https://nixos.org/blog/announcements/2025/nixos-2511 NixOS 25.11 released
 

NixOS関連の記事
https://debslink.hatenadiary.jp/entry/20250311/1741649715 NixOSの沼に片足を突っ込んだ
https://debslink.hatenadiary.jp/entry/20250316/1742128054 NixOSにFlakeを導入した
https://debslink.hatenadiary.jp/entry/20250320/1742459549 NixOSの環境構築
https://debslink.hatenadiary.jp/entry/20250323/1742731080 NixOSでSFTPサーバの設定
https://debslink.hatenadiary.jp/entry/20250328/1743167901 NixOSでSambaによるファイルサーバの構築
https://debslink.hatenadiary.jp/entry/20250405/1743844940 NixOSでrsyslogの設定
https://debslink.hatenadiary.jp/entry/20250411/1744300480 NixOSでDNSサーバの構築
https://debslink.hatenadiary.jp/entry/20250413/1744551596 NixOSのシステムの再現性の検証
https://debslink.hatenadiary.jp/entry/20250418/1744924524 NixOSでPostfixとDovecotによるメールサーバの構築
https://debslink.hatenadiary.jp/entry/20250419/1745062553 NixOSでPostfixとDovecotによるメールサーバの構築 - SASL認証編
https://debslink.hatenadiary.jp/entry/20250421/1745236668 NixOSのパッケージやOSのアップデートに関するメモ
https://debslink.hatenadiary.jp/entry/20250428/1745795434 NixOSをCLIでインストールした
https://debslink.hatenadiary.jp/entry/20250503/1746235454 NixOSでnginxによるWebサーバの構築
https://debslink.hatenadiary.jp/entry/20250508/1746706416 NixOSでPrometheusとGrafanaによる監視基盤の構築
https://debslink.hatenadiary.jp/entry/20250510/1746884897 NixOSの導入にあたり参考になったサイト
https://debslink.hatenadiary.jp/entry/20250524/1748072722 NixOSを24.11から25.05にアップデートした
https://debslink.hatenadiary.jp/entry/20251214/1765688458 NixOSを25.05から25.11にアップデートした
https://debslink.hatenadiary.jp/entry/20260117/1768615582 Raspberry Pi 4BにNixOSを導入しファイルサーバを構築した
https://debslink.hatenadiary.jp/entry/20260503/1777775392 NixOSで構築したサーバの運用について