The latest version of the NIXOS distribution, NIXOS 24.05, has been released. NIXOS is based on the package manager NIX and comes with its own developments that simplify system setup and support. One key feature of NIXOS is that the entire system configuration is handled through a single configuration file. This allows users to easily roll back to previous configurations and switch between different system states. Individual users can install their own packages, and multiple versions of a program can be used simultaneously. NIXOS is known for its reproducible assemblies and supports architectures x86_64 and ARM64.
When using NIX, packages are assembled and stored in a separate subdirectory in /NIX/Store. For example, the Firefox package might be stored in /nix/store/1onlv5pcg8EW4TWCFD5D5C5D4-Firefox-125.0.1/. The NIXOS project assembly service, Hydra, is used for package assembly. Symbolic links to all packages in a system or user profile are created in a directory, which is then added to the PATH list. A similar approach is used in the GNU GUIX package manager, which is also based on NIX. The package collection is available in the nixpkgs repository.
The main innovations in NIXOS 24.05 include:
- Added 17777 packages, removed 9393 packages, and updated 16249 packages. 145 new modules were added, and 23 modules were removed. 2491 developers contributed to the development and maintenance of packages.
- Users can now choose from user environments like KDE Plasma 6.0, Gnome 46, and Mate 1.28. The distribution includes packages with the user environment Lomiri (formerly Unity8) using Wayland and MIR 2.
- 66 new services have been added, including Appimage, Anki Sync Server, Clevis, Dnsproxy, Guix, Intel-GPU-TOOLS, ISOLATE, Microsocks, Rustdesk, and Watchdogd.
- The Linux kernel has been updated to version 6.6 (from 6.1) and now uses the ZSTD algorithm for file compression.
- An executable file loader for ELF format has been installed, which displays error messages for NIXOS-collected executable files. The “Environment.stub-ld.enable” configuration allows for easy disconnection.
- Systems can now be created without the Perl interpreter installed, transferring system dependencies using Perl to optional options.