Die Version 25.05 des NixOS-Distributionsrelease wurde vorgestellt. Dieses System basiert auf dem Paketmanager Nix und bietet eigene Entwicklungen zur Vereinfachung der Systemkonfiguration und -verwaltung. In NixOS erfolgt die gesamte Systemkonfiguration über eine zentrale Datei namens configuration.nix. Es gibt Funktionen für ein schnelles Zurücksetzen des Systems auf eine vorherige Konfigurationsversion sowie für den Wechsel zwischen verschiedenen Systemzuständen. Die Installation individueller Pakete durch einzelne Benutzer wird unterstützt, und es gibt die Möglichkeit, mehrere Versionen eines Programms gleichzeitig zu verwenden. Reproduzierbare Builds werden bereitgestellt. Für die Architekturen x86_64 und ARM64 steht ein Installationsimage mit grafischer Benutzeroberfläche (3,7 GB) sowie eine reduzierte Konsolenversion (1,4 GB) zur Verfügung.
Bei der Verwendung von Nix wird das Ergebnis der Paketkompilierung in einem separaten Unterverzeichnis in /nix/store gespeichert. Zum Beispiel kann nach der Kompilierung das Paket firefox in /nix/store/5onlv1pc3ed6n5nskg8ew4twcfd0d5ae4ec5d4-firefox-138.0.4/ abgelegt werden, wobei „5onlv1pc3ed6n5nskg8ew4twcfd0d5ae4ec5d4“ der Hash aller Abhängigkeiten und Kompilierungsanweisungen ist. Unter der Installation eines Pakets versteht man dessen Kompilierung oder das Herunterladen eines bereits kompilierte Pakets (sofern es bereits auf Hydra – dem Kompilierungsdienst des NixOS-Projekts – kompilierte wurde), sowie die Bildung eines Verzeichnisses mit symbolischen Links zu allen Paketen im System- oder Benutzerprofil, gefolgt von der Hinzufügung dieses Verzeichnisses zur PATH-Liste. Ein ähnlicher Ansatz wird im Paketmanager GNU Guix verwendet, der auf den Entwicklungen von Nix basiert. Die Sammlung von Paketen ist in einem speziellen Repository, Nixpkgs, verfügbar.
Hauptneuheiten:
- Es wurden 7840 Pakete hinzugefügt, 1694 Pakete entfernt und 28054 Pakete aktualisiert. 137 neue Module und 1930 Konfigurationsoptionen wurden hinzugefügt, 10 Module und 215 Optionen wurden entfernt. An der Entwicklung und Wartung der Pakete waren 2857 Entwickler beteiligt, die 57054 Änderungen vorgenommen haben.
- Die Veröffentlichung der GNOME-Desktop-Umgebung 48 wurde vorgeschlagen. Standardmäßig wird der Musik-Player Decibels verwendet. Die Standardinstallation des GNOME Shell-Erweiterungspakets (gnome-shell-extensions) wurde eingestellt.
- Die Benutzeroberflächen Cinnamon 6.4, Pantheon 8 (elementary OS) und Xfce 4.20 wurden aktualisiert.
- Die Unterstützung für die benutzerdefinierte Oberfläche COSMIC wurde hinzugefügt.
- Neue Module wie Anubis, AmneziaVPN, Cursor, Kismet, vwifi, Ghidra, Yggdrasil-Jumper, MaryTTS, doh-server, Schroot, Firezone, PostgREST, postgres-websockets, pgBackRest, µStreamer, nfc-nci, victorialogs, Zipline, vsmartcard-vpcd, LiteLLM, Rebuilderd, GNU Rush, GoDNS usw. wurden hinzugefügt.
- Die Versionsupdates beinhalten beispielsweise den Linux-Kernel 6.12 (früher 6.6), GCC 14, LLVM 19, OpenSSH 10.0p2 (DSA-Schlüssel werden nicht mehr unterstützt).
- Die Unterstützung für das Erstellen von Containern (virtualisation.containers) auf Basis von Podman, die im Root-rechtlosen Modus laufen, wurde hinzugefügt.
- Der Befehl „nixos-rebuild build-image“ wurde implementiert, um spezifische Disk-Images basierend auf der gegebenen Konfiguration zu erstellen.
- Der Befehl nixos-option wurde neu geschrieben und verwendet jetzt Nix-Ausdrücke.
- Die Methode zur Erstellung von Paketen mit Mesa-Treibern wurde überarbeitet. Installierte Anwendungen im System, die mit verschiedenen Versionen von Mesa verbunden sind, sollten jetzt korrekt funktionieren, und die globale Version von Mesa kann ohne eine umfassende Neubauregelung verwaltet werden.
- Im Repository channels.nixos.org wurde die Unterstützung für das Protokoll Lockable HTTP Tarball hinzugefügt, das die Verwendung von Archiven wie nixexprs.tar als Nix Flake-Images ermöglicht.
- Der Befehl nixos-generate-config hat die Option „—flake“ erhalten, um neben den Dateien configuration.nix und hardware-configuration.nix die Datei flake.nix zu generieren, was die Integration mit flake-basierten Konfigurationen erleichtert.
Quelle: opennet.ru
