Website-Suche

Wie man NixOS 23.11 auf 24.05 aktualisiert [Schritt-für-Schritt]


NixOS 24.05, mit dem Codenamen Uakari, wurde vor ein paar Tagen veröffentlicht. Eine der Hauptstärken von NixOS ist der einfache und unkomplizierte Aktualisierungsprozess, der sicherstellt, dass Ihr System auf dem neuesten Stand bleibt und gleichzeitig Stabilität und Zuverlässigkeit gewährleistet. In diesem Schritt-für-Schritt-Tutorial werden wir besprechen, wie man NixOS aktualisiert auf die neueste verfügbare Version.

Für den Zweck dieses Leitfadens werde ich demonstrieren, wie man NixOS 23.11 (Tapir) auf 24.05 (Uakari) aktualisiert. Hier sind die aktuellen Versionsdetails meines NixOS 23.11:

$ 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"

NixOS-Version überprüfen

Datensicherung

Dies sollte der erste Schritt sein, unabhängig davon, welches Betriebssystem Sie verwenden. Stellen Sie sicher, dass Sie alle wichtigen Daten gesichert haben, deren Verlust Sie sich nicht leisten können.

NixOS-Kanäle aktualisieren

Im Kern des NixOS-Aktualisierungsprozesses liegt das Konzept der Channels. NixOS-Channels sind kuratierte Repositories, die Nix-Ausdrücke und die dazugehörigen Binärdateien verteilen, sorgfältig getestet und erstellt, um ein nahtloses Erlebnis zu gewährleisten. Die verfügbaren Channels umfassen:

  • Stabile Kanäle (z. B. nixos-24.05): Diese Kanäle erhalten konservative Fehlerbehebungen und Paketaktualisierungen, wie z. B. kleinere Kernel-Updates von 6.1 auf 6.2, um ein stabiles und zuverlässiges Erlebnis zu gewährleisten.
  • Instabiler Kanal (nixos-unstable): Für Abenteuerlustige spiegelt dieser Kanal den aktiven Entwicklungszweig von NixOS wider und bietet die neuesten fortschrittlichen Funktionen und Updates, wenn auch mit potentieller Instabilität.
  • Kleine Kanäle (z. B. nixos-24.05-small): Identisch mit ihren regulären Gegenstücken, jedoch mit weniger vorkompilierten Binärpaketen, sind diese Kanäle ideal für Serverumgebungen und bieten schnellere Updates, wenn kritische Sicherheitsupdates veröffentlicht werden.

Um mehr über die Verwendung von Nix-Channels zu erfahren, sehen Sie sich den folgenden Leitfaden an:

Erste Schritte mit dem Nix-Paketmanager

Upgrade von NixOS 23.11 auf 24.05

Wenn Sie NixOS zum ersten Mal installieren (z. B. 23.11), werden Sie automatisch auf den Kanal abonniert, der Ihrer Installationsquelle entspricht.

Um Ihren aktuellen Kanal zu überprüfen, führen Sie den folgenden Befehl als Root- oder Sudo-Benutzer aus:

$ sudo nix-channel --list | grep nixos
nixos https://nixos.org/channels/nixos-23.11

Aktuellen Kanal in NixOS überprüfen

Wie Sie in der obigen Ausgabe sehen, ist mein aktueller Kanal 23.11. Das bedeutet, dass ich NixOS 23.11 verwende.

Um die Kanäle auf die neueste Version zu wechseln, verwenden Sie einfach nix-channel --add https://channels.nixos.org/channel-name nixos.

Zum Beispiel verwenden wir zum Wechseln zum stabilen 24.05-Kanal:

$ sudo $nix-channel --add https://channels.nixos.org/nixos-24.05 nixos

Sobald Sie den gewünschten Kanal abonniert haben, ist das Upgrade genauso einfach wie das Ausführen von:

$ sudo nixos-rebuild switch --upgrade

Dieser Befehl ist gleichbedeutend mit nix-channel --update nixos; nixos-rebuild switch und aktualisiert Ihr System nahtlos auf die neueste Version im ausgewählten Kanal.

Wenn das Upgrade erfolgreich ist, sehen Sie die folgende Ausgabe:

[...]
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 device
lsblk: /dev/mapper/raid*[0-9]: not a block device
lsblk: /dev/mapper/disks*[0-9]: not a block device
installing the GRUB 2 boot loader on /dev/sda...
Installing for i386-pc platform.
Installation finished. No error reported.
[...]

Starten Sie Ihr NixOS-System neu.

$ sudo reboot

Nachdem Sie sich im neu aufgerüsteten System angemeldet haben, überprüfen Sie dessen Version, um zu bestätigen, ob das Upgrade erfolgreich war.

[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"**

NixOS-Version und Codename überprüfen

Wie Sie in der obigen Ausgabe sehen, haben wir erfolgreich auf NixOS 24.05 aktualisiert.

NixOS auf die Bleeding-Edge-Version aktualisieren

Wenn Sie die neueste Version ausprobieren möchten, können Sie zum Channel nixos-unstable wechseln und das Upgrade wie oben gezeigt durchführen. Hier sind die Schritte, um NixOS auf die neueste Version zu aktualisieren.

Wechseln Sie zunächst mit dem folgenden Befehl zum instabilen NixOS-Kanal:

$ sudo nix-channel --add https://channels.nixos.org/nixos-unstable nixos

Dieser Befehl weist den Nix-Paketmanager an, die URL des instabilen Kanals (https://channels.nixos.org/nixos-unstable) hinzuzufügen und sie dem Kanalnamen nixos zuzuordnen.

Sie können überprüfen, welchen Kanal Sie derzeit abonniert haben, indem Sie den folgenden Befehl verwenden:

$ sudo nix-channel --list | grep nixos

Dies zeigt die Kanal-URL und den Namen an, die mit Ihrer aktuellen NixOS-Installation verknüpft sind.

Nach dem Hinzufügen des nixos-unstable-Kanals können Sie dann Ihre NixOS-Installation auf die neueste Version im instabilen Kanal aktualisieren, indem Sie Folgendes ausführen:

$ sudo nixos-rebuild switch --upgrade

Dies wird alle neuesten Pakete und Updates aus dem instabilen Kanal herunterladen und installieren.

Es ist wichtig zu beachten, dass der instabile Kanal, wie der Name schon sagt, die neuesten bahnbrechenden Updates und Änderungen aus dem Hauptentwicklungszweig von NixOS enthält.

Während es Zugang zu den neuesten Funktionen und Paketen bietet, kann es auch Instabilitäten oder Funktionsstörungen verursachen. Daher wird im Allgemeinen nicht empfohlen, den instabilen Kanal auf Produktionssystemen oder in missionkritischen Umgebungen zu verwenden.

Wenn Sie später wieder zu einem stabilen Kanal wechseln möchten, können Sie einen ähnlichen nix-channel --add-Befehl mit der gewünschten URL des stabilen Kanals verwenden (z. B. https://channels.nixos.org/nixos-24.05 für den stabilen NixOS 24.05-Kanal).

Automatische Updates

Für maximalen Komfort bietet NixOS eine automatische Upgrade-Option. Indem Sie die folgenden Zeilen zu Ihrer configuration.nix hinzufügen:

{
  system.autoUpgrade.enable = true;
  system.autoUpgrade.allowReboot = true;
}

Sie aktivieren den nixos-upgrade.service, der regelmäßig nach Updates aus Ihrem abonnierten Kanal sucht und diese anwendet.

Wenn allowReboot auf true gesetzt ist, wird das System automatisch neu gestartet, wenn die neue Generation Änderungen am Kernel, an initrd oder an Kernelmodulen enthält.

Sie können sogar einen benutzerdefinierten Kanal für automatische Upgrades angeben:

{
  system.autoUpgrade.channel = "https://channels.nixos.org/nixos-24.05";
}

Fazit

Mit NixOS war das Aktualisieren Ihres Systems noch nie so unkompliziert. Egal, ob Sie die Stabilität des neuesten stabilen Kanals oder die Spitzenneuerungen des instabilen Kanals bevorzugen, der Prozess ist ziemlich einfach!