The release of distribution NixOS 21.05 has been announced, based on the Nix package manager and offering a range of proprietary developments that simplify the setup and maintenance of the system. For instance, NixOS uses a single system configuration file (configuration.nix), allows for quick rollback of updates, supports switching between different system states, enables users to install individual packages (packages are installed in the home directory), permits the simultaneous installation of multiple versions of the same program, and ensures reproducible builds. The full installation image size is 1.4 GB with KDE, 1.8 GB with GNOME, and 660 MB for the reduced console version.
Key innovations:
- A total of 12,985 packages have been added, 14,109 packages have been removed, and 16,768 packages have been updated. The versions of distribution components have been updated, including gcc 10.3.0, glibc 2.32, and mesa 21.0.1. The base Linux kernel has been updated from version 5.4 to 5.10, with the option to use kernel 5.12.
- Desktops have been updated to KDE 5.21.3 (+ KDE Applications 20.12.3), GNOME 3.40, and Cinnamon 4.8.1.
- New services have been added with GNURadio 3.8, proxy server Keycloak authentication, and the discussion platform Discourse.
When using Nix, packages are installed in a separate directory tree /nix/store or a subdirectory in the user directory. For example, a package is installed as /nix/store/f2b5…8a163-firefox-89.0.0/, where 'f2b5…' is a unique package identifier used for dependency tracking. Packages are structured as containers containing the components necessary for application operation. A similar approach is used in the GNU Guix package manager, which is based on Nix's developments.
Dependencies can be defined between packages, during which the presence of already installed dependencies is checked by scanning hash identifiers in the directory of installed packages. It is possible to either fetch pre-built binary packages from the repository (updating binary packages only downloads delta changes) or compile from source with all dependencies. The package collection is presented in a special Nixpkgs repository.
Source: opennet.ru
