NixOS 24.05 (Uakari) is released, easy upgrade guide! NixOS is known for its easy upgrade process, and this tutorial will guide you step by step how to upgrade NixOS to the latest version to ensure system stability and reliability.
We will demonstrate how to upgrade NixOS 23.11 (Tapir) to 24.05 (Uakari). My NixOS 23.11 version information is as follows:
<code>$ cat /etc/os-release BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="23.11.5541.56528ee42526" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 23.11 (Tapir)" SUPPORT_END="2024-06-30" SUPPORT_URL="https://nixos.org/community.html" VERSION="23.11 (Tapir)" VERSION_CODENAME=tapir VERSION_ID="23.11"</code>
Table of contents
Data backup
No matter what operating system you use, the first step is to back up important data.
Update NixOS Channel
The core of NixOS upgrade is the concept of "channel". Channels are carefully organized repositories that distribute Nix expressions and their associated binaries, rigorously tested and built to ensure a seamless experience. Available channels include:
For more information on Nix channel usage, check out the following guide:
Getting started with Nix Package Manager
Upgrade from NixOS 23.11 to 24.05
When you first install NixOS (such as 23.11), you will automatically subscribe to the channel corresponding to the installation source.
To check the current channel, run the following command as root or sudo user:
<code>$ sudo nix-channel --list | grep nixos nixos https://nixos.org/channels/nixos-23.11</code>
As shown above, my current channel is 23.11, which means I am using NixOS 23.11.
To switch to the latest version of the channel, just use nix-channel --add https://channels.nixos.org/channel-name nixos
.
For example, to switch to a stable 24.05 channel, we use:
<code>$ sudo nix-channel --add https://channels.nixos.org/nixos-24.05 nixos</code>
After subscribing to the required channel, just upgrade to run:
<code>$ sudo nixos-rebuild switch --upgrade</code>
This command is equivalent to nix-channel --update nixos; nixos-rebuild switch
, which seamlessly updates the system to the latest version in the selected channel.
If the upgrade is successful, you will see the following output:
<code>[...]updating GRUB 2 menu...Warning: os-prober will be executed to detect other bootable partitions.Its output will be used to detect bootable binaries on them and create new boot entries.lsblk: /dev/mapper/no*[0-9]: not a block devicelsblk: /dev/mapper/raid*[0-9]: not a block devicelsblk: /dev/mapper/disks*[0-9]: not a block deviceinstalling the GRUB 2 boot loader on /dev/sda...Installing for i386-pc platform. <strong>Installation finished. No error reported.</strong> [...]</code>
Restart your NixOS system.
<code>$ sudo reboot</code>
After logging in to the newly upgraded system, check its version to verify that the upgrade is successful.
<code>[ostechnix@nixos:~]$ cat /etc/os-release ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" **BUILD_ID="24.05.803.b3b2b28c1daa"** DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.05 (Uakari)" SUPPORT_END="2024-12-31" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.05 (Uakari)" VERSION_CODENAME=uakari **VERSION_ID="24.05"**</code>
As shown in the above output, we have successfully upgraded to NixOS 24.05.
Upgrade to an unstable version of NixOS
If you want to try the unstable version (the latest version), you can switch to the nixos-unstable
channel and perform the upgrade as shown above. Here are the steps to upgrade NixOS to the latest version.
First, switch to the NixOS unstable channel using the following command:
<code>$ sudo nix-channel --add https://channels.nixos.org/nixos-unstable nixos</code>
This command instructs the Nix Package Manager to add the URL of the unstable channel ( https://channels.nixos.org/nixos-unstable
) and associate it with nixos
channel name.
You can check the channel you are currently subscribed with:
<code>$ sudo nix-channel --list | grep nixos</code>
This displays the channel URL and name associated with the current NixOS installation.
After adding the nixos-unstable
channel, you can upgrade your NixOS installation to the latest version in the unstable channel by running the following command:
<code>$ sudo nixos-rebuild switch --upgrade</code>
This will download and install all the latest packages and updates from the unstable channel.
It should be noted that the unstable channel (as its name implies) contains the latest cutting-edge updates and changes from the main NixOS development branch.
While it provides access to the latest features and software packages, it can also lead to instability or failure. Therefore, it is generally not recommended to use unstable channels in production systems or mission-critical environments.
If you want to switch back to a stable channel later, you can use a similar nix-channel --add
command and use the required stable channel URL (for example, https://channels.nixos.org/nixos-24.05
for NixOS 24.05 stable channel).
Automatic upgrade
For maximum convenience, NixOS provides an automatic upgrade option. By adding the following lines to your configuration.nix
:
<code>{ system.autoUpgrade.enable = true; system.autoUpgrade.allowReboot = true; }</code>
You will enable nixos-upgrade.service
, which periodically checks for updates from your subscribed channel.
If allowReboot
is set to true
, the system will automatically restart when the new version contains kernel, initrd, or kernel module changes.
You can even specify a custom channel for automatic upgrade:
<code>{ system.autoUpgrade.channel = "https://channels.nixos.org/nixos-24.05"; }</code>
Summarize
Upgrading your system has never been easier with NixOS! Whether you prefer the stability of the latest stable channel or the latest features of the unstable channel, the upgrade process is very simple!
The above is the detailed content of How To Upgrade NixOS 23.11 To 24.05 [Step-by-Step]. For more information, please follow other related articles on the PHP Chinese website!