Release of the NixOS 21.11 distribution using the Nix package manager

The release of the NixOS 21.11 distribution kit, based on the Nix package manager and providing a number of proprietary developments that simplify system configuration and maintenance, has been released. For example, NixOS uses a single system configuration file (configuration.nix), provides the ability to quickly roll back updates, supports switching between different system states, supports installation of individual packages by individual users (the package is placed in the home directory), simultaneous installation of several versions of one program is possible. , reproducible builds are provided. The size of the full installation image with KDE is 1.6 GB, GNOME is 2 GB, and the reduced console version is 765 MB.

Main innovations:

  • The KDE Plasma desktop is set to use the Wayland protocol by default. Updated GNOME 41 and Pantheon 6 desktops ((from Elementary OS 6).
  • Instead of iptables, the iptables-nft set is used, which provides utilities with the same command line syntax, but translating the received rules into the nf_tables bytecode.
  • Updated versions of Systemd 249, PHP 8.0, Python 3.9, PostgreSQL 13, bash 5, OpenSSH 8.8p1.
  • Significantly improved support for the LXD container management system. Implemented the ability to build images for LXD from configuration files using nixpkgs. nixOS images are built with full support for nixos-rebuild, which can be used standalone.
  • Added over 40 new services including Git, btrbk (btrfs backup), clipcat (clipboard manager), dex (OAuth 2.0 provider), Jibri (Jitsi Meet recording service), Kea (DHCP server), owncast (streaming) video), PeerTube, ucarp (implementation of the CARP protocol), opensnitch (dynamic firewall), Hockeypuck (OpenPGP key server), MeshCentral (analogue of TeamViewer), influxdb2 (DBMS for storing metrics), fluidd (web interface for managing 3D printers ), postfixadmin (web interface for managing a Postfix-based mail server), seafile (cloud storage platform).

When using Nix, packages are installed in a separate /nix/store directory tree or a subdirectory in the user's directory. For example, a package is installed as /nix/store/a2b5...8b163-firefox-94.0.2/ where "a2b5..." is a unique package identifier used to control dependencies. Packages are designed as containers containing the components necessary for the application to work. A similar approach is taken by the GNU Guix package manager, which is based on Nix.

It is possible to determine dependencies between packages by scanning the hash identifiers in the directory of installed packages to find the presence of already installed dependencies. It is possible both to download ready-made binary packages from the repository (when installing updates to binary packages, only delta changes are downloaded), or build from source with all dependencies. The collection of packages is provided in a special Nixpkgs repository.

Source: opennet.ru

Add a comment