Die Veröffentlichung von NixOS 21.11, das auf dem Paketmanager Nix basiert und mehrere eigene Entwicklungen bietet, die die Einrichtung und Wartung des Systems erleichtern, hat stattgefunden. So wird in NixOS eine einheitliche Systemkonfigurationsdatei (configuration.nix) verwendet, es gibt die Möglichkeit, Updates schnell zurückzusetzen, der Wechsel zwischen verschiedenen Systemzuständen wird unterstützt, Benutzer können individuelle Pakete installieren (ein Paket wird im Home-Verzeichnis installiert), mehrere Versionen eines Programms können gleichzeitig installiert werden, und reproduzierbare Builds sind gewährleistet. Die Größe des vollständigen Installationsimages mit KDE beträgt 1,6 GB, mit GNOME 2 GB und die verkürzte Konsolenversion 765 MB.
Hauptneuheiten:
- Der KDE Plasma Desktop verwendet standardmäßig das Wayland-Protokoll. Die Desktops GNOME 41 und Pantheon 6 (aus Elementary OS 6) wurden aktualisiert.
- Statt iptables wird das Paket iptables-nft eingesetzt, das Funktionen mit demselben Kommandozeilen-Syntax bereitstellt, aber die erhaltenen Regeln in Bytecode nf_tables übersetzt.
- Die Versionen von Systemd 249, PHP 8.0, Python 3.9, PostgreSQL 13, bash 5, OpenSSH 8.8p1 wurden aktualisiert.
- Die Unterstützung des Container-Management-Systems LXD wurde erheblich verbessert. Es wurde die Möglichkeit implementiert, LXD-Images aus Konfigurationsdateien mithilfe von nixpkgs zu erstellen. Es wird eine Erstellung von nixOS-Images mit vollständiger Unterstützung von nixos-rebuild ermöglicht, die unabhängig verwendet werden können.
- Über 40 neue Dienste wurden hinzugefügt, einschließlich Git, btrbk (Backup für btrfs), clipcat (Clipboard-Manager), dex (OAuth 2.0 Provider), Jibri (Dienst für die Aufzeichnung von Jitsi Meet-Konferenzen), Kea (DHCP-Server), owncast (Video-Streaming), PeerTube, ucarp (Implementierung des CARP-Protokolls), opensnitch (dynamische Firewall), Hockeypuck (OpenPGP-Schlüsselserver), MeshCentral (analog zu TeamViewer), influxdb2 (Datenbankmanagementsystem für die Speicherung von Metriken), fluidd (Web-Interface zur Steuerung von 3D-Druckern), postfixadmin (Web-Interface zur Verwaltung von E-Mail-Servern auf Basis von Postfix) und seafile (Cloud-Speicher-Plattform). Server .
Bei der Verwendung von Nix werden Pakete in einem separaten Verzeichnisbaum /nix/store oder in einem Unterverzeichnis im Benutzerverzeichnis installiert. Zum Beispiel wird ein Paket als /nix/store/a2b5…8b163-firefox-94.0.2/ installiert, wobei „a2b5…“ eine eindeutige Paket-ID ist, die zur Verwaltung von Abhängigkeiten verwendet wird. Pakete werden als Container gestaltet, die die zur Ausführung von Anwendungen benötigten Komponenten enthalten. Ein ähnlicher Ansatz wird im Paketmanager GNU Guix angewendet, der auf den Entwicklungen von Nix basiert.
Zwischen den Paketen können Abhängigkeiten definiert werden, wobei zur Überprüfung vorhandener Abhängigkeiten das Scannen von Hash-IDs im Verzeichnis der installierten Pakete verwendet wird. Es ist sowohl möglich, vorgefertigte Binärpakete aus dem Repository herunterzuladen (bei der Installation von Updates für die Binärpakete werden nur Delta-Änderungen heruntergeladen), als auch aus Quelltexten mit allen Abhängigkeiten zu bauen. Die Paketkollektion wird in einem speziellen Repository Nixpkgs bereitgestellt.
Quelle: opennet.ru
