La distribution NixOS 22.05 a été publiée, basée sur le gestionnaire de paquets Nix et offrant un certain nombre de développements internes simplifiant la configuration et la maintenance du système. Par exemple, dans NixOS, toute la configuration du système se fait via un fichier unique de configuration système (configuration.nix), permettant un retour rapide à la version précédente de la configuration, supportant le passage entre différents états du système, permettant l'installation de paquets individuels par des utilisateurs distincts, la possibilité d'utiliser plusieurs versions d'un même programme simultanément, et garantissant des constructions reproductibles. La taille de l'image d'installation complète avec KDE est de 1,7 Go, GNOME — 2,2 Go, et la version console allégée — 820 Mo.
Les principales nouveautés :
- Pour simplifier l'installation de la distribution, un installeur graphique basé sur le framework Calamares a été proposé, utilisé pour créer des installeurs dans des projets tels que Manjaro, Sabayon, Chakra, NetRunner, KaOS, OpenMandriva et KDE neon. Le nouvel installeur est par défaut inclus dans les images ISO avec GNOME et KDE.

- 9345 paquets ont été ajoutés, 5874 paquets ont été supprimés, et 10666 paquets ont été mis à jour. Les versions des paquets ont été mises à jour, y compris GNOME 42, systemd 250, PHP 8.1, Pulseaudio 15, PostgreSQL 14.
- Plus de 89 nouveaux services ont été ajoutés, parmi lesquels aesmd (Intel SGX Architectural Enclave Service Manager), Docker sans racine (pour exécuter Docker sans privilèges root), matrix-conduit (serveur matrix), apfs (Apple File System), FRRouting (implémentation de protocoles de routage), snowflake-proxy (proxy pour contourner la censure du trafic), pgadmin4 (GUI pour la gestion de PostgreSQL), moosefs (FS distribué), nbd (Network Block Device). 27 services ont été supprimés, principalement des branches de programmes obsolètes ou liés à Python2.
- Le gestionnaire de paquets Nix a été mis à jour vers la version 2.8, offrant un support pour des fonctionnalités expérimentales activées séparément (flake). Par exemple, une commande expérimentale « nix fmt » a été ajoutée pour connecter des gestionnaires de formatage de sortie, ainsi qu'un mode expérimental « impure » pour générer des chemins de contenu différents à chaque construction. Un support est offert pour charger le contenu depuis un flux d'entrée (par exemple, « --file - »).
- Le paquet avec le navigateur Firefox pour l'architecture x86_64 a été compilé avec des optimisations basées sur les résultats du profilage de code (PGO) pour améliorer les performances.
- Un gestionnaire security.acme.defaults a été ajouté pour simplifier la configuration de l'acquisition. des certificats TLS.
Lors de l'utilisation de Nix, le résultat de la construction des paquets est stocké dans un sous-répertoire séparé dans /nix/store. Par exemple, après la construction, le paquet firefox peut être enregistré dans /nix/store/1onlv2pc3ez4n5nskg6ew7twcfd0c5cecec5d4-firefox-100.0.1/, où « 1onlv2pc3ez4n5nskg6ew7twcfd0c5cecec5d4 » est le hachage de toutes ses dépendances et instructions de construction. L'installation d'un paquet implique sa construction ou son téléchargement déjà construit (à condition qu'il ait déjà été construit sur Hydra - le service de construction du projet NixOS), ainsi que la création d'un répertoire avec des liens symboliques vers tous les paquets dans le profil système ou utilisateur, suivie de l'ajout de ce répertoire à la liste PATH. Une approche similaire est appliquée dans le gestionnaire de paquets GNU Guix, qui s'inspire des travaux de Nix. La collection de paquets est présentée dans un dépôt spécial Nixpkgs.
Source : opennet.ru

