The release of NixOS 19.03 has taken place, based on the Nix package manager and providing a range of custom developments that simplify the setup and maintenance of the system. For example, NixOS uses a single system configuration file (configuration.nix), offers the ability to quickly roll back updates, supports switching between different states of the system, enables individual users to install custom packages (which are placed in the home directory), and allows for the simultaneous installation of multiple versions of a single program. The full installation image with KDE is 1 GB, while the reduced console variant is 400 MB.
Key innovations:
- The package includes the Pantheon desktop environment developed by the Elementary OS project (enabled via services.xserver.desktopManager.pantheon.enable);
- The module with the Kubernetes container orchestration system has been significantly redesigned, now split into separate components. To enhance security, TLS and RBAC are enabled by default;
- Options have been added to systemd.services for running services in a chroot environment;
- An installation image has been added for the Aarch64 architecture with support for
UEFI; - Updated versions of the distribution components, including CPython 3.7 (previously 3.6);
- 22 new services have been added, including CockroachDB, bolt, lirc,
roundcube, weechat, and knot.
When using Nix, packages are installed in a separate directory tree /nix/store or a subdirectory in the user’s home directory. For example, a package is installed as /nix/store/f3a4h95649f394358bh52d4vf7a1f3-firefox-66.0.3/, where 'f3a4h9…' is a unique package identifier used for dependency tracking. Packages are formatted as containers that include all the necessary components for the applications to function.
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
