release of the package manager and the GuixSD GNU/Linux distribution built on it. The significant change in the version number is due to the completion of all , set to form this landmark release. The release marks the culmination of seven years of work on the project and is considered ready for everyday use. For download, install images for USB Flash (243 MB) and for use in virtualization systems (474 MB) are available. It supports operation on architectures i686, x86_64, armv7, and aarch64.
The distribution allows installation as either in virtualization systems, in containers, and on regular hardware, or in already installed GNU/Linux distributions, serving as a platform for deploying applications. Users are provided with features such as dependency accounting, reproducible builds, operating without root, rollback to previous versions in case of issues, configuration management, environment cloning (creating an exact copy of the software environment on other computers), etc.
Key :
- A new , working in text mode;
- a new image for virtual machines, suitable for both familiarization with the distribution and for creating working environments for development;
- New system services cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent, and zabbix-server have been added;
- The versions of programs in 2104 packages have been updated, and 1102 new packages added. This includes updates for clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3,
gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1,
guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4,
libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1,
octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0,
sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1, and xorg-server 1.20.4; - The GNU Shepherd service manager has been updated to version , which implements a one-shot service mode, where the service is marked as stopped immediately after successful startup, which may be necessary for running one-time tasks before other services, such as for cleaning or initialization;
- For the ‘guix package’ command, typical aliases from other package managers such as 'install', 'remove', 'upgrade', and 'search' have been added. To search for a package, the command 'guix search' can be used, for installation 'guix install', and for updating 'guix pull' and 'guix upgrade';
- The package manager now includes a progress indicator for operations and color highlighting for diagnostic messages. By default, most commands are now executed without detailed output displayed on the screen, which can be enabled with the separate option "-v" (—verbosity);
- The guix package manager has added a new command "guix system delete-generations" and options "guix pack —save-provenance", "guix pull —news", "guix environment —preserve", "guix gc —list-roots", "guix gc —delete-generations", and "guix weather —coverage";
- New options have been added "—with-git-url" and "—with-branch";
- The distribution has added configuration fields "keyboard-layout" for defining the keyboard layout, "xorg-configuration" for configuring the X server, "label" for partition labeling, and "essential-services" for defining core services;
- A command "guix pack -RR" has been added to create tar archives with relocatable executable files, which can be run both relative to paths in the user's namespace and relative to PRoot;
- In "guix pull", a package cache has been implemented to speed up name search operations, and the package "glibc-utf8-locales" has been integrated;
- Full reproducibility (bit for bit) of ISO images generated by the "guix system" command has been ensured;
- GDM has been used as the login manager instead of SLiM;
- Support for building Guix using Guile 2.0 has been discontinued.
Recall that the GNU Guix package manager is based on the developments of the project and, in addition to typical package management functions, supports capabilities such as performing transactional updates, the ability to roll back updates, functioning without superuser privileges, support for user-specific profiles, the ability to install multiple versions of the same program simultaneously, and garbage collection tools (identifying and removing unused package versions). To define application build scenarios and package formation rules, a specialized high-level domain-specific language and components of the Guile Scheme API are proposed, allowing management of packages using the functional programming language Scheme.
Support is provided for using packages prepared for the Nix package manager and stored in the repository.
In addition to operations with packages, it is possible to create scripts for managing application configurations. When building a package, all related dependencies are automatically downloaded and compiled. Both pre-built binary packages from the repository and building from source with all dependencies are possible. Tools for keeping installed program versions up-to-date through organizing updates from an external repository have been implemented.
The build environment for packages is formed as a container that contains all the components necessary for the applications to function, allowing the formation of a set of packages capable of operating independently of the underlying system environment of the distribution, where Guix is used as an overlay. Dependencies can be defined between Guix packages, using hash-identifier scanning in the directory of installed packages to search for the presence of already installed dependencies. Packages are installed in a separate directory tree or subdirectory in the user's directory, allowing for parallel coexistence with other package managers and supporting a wide range of existing distributions. For example, a package is installed as /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, where "f42d58…" is a unique package identifier used for dependency tracking.
The distribution includes only free components and is supplied with the GNU Linux-Libre kernel, which is cleansed of non-free elements from binary firmware. The build uses GCC 8.3. A service manager is used as the initialization system. (), developed as an alternative to SysV-init with dependency support. The managing daemon and Shepherd utilities are written in Guile (one of the implementations of the Scheme language), which is also used to define the service launch parameters. The base image supports operation in console mode, but for installation there are 9714 ready-made packages, including components of the graphical stack based on X.Org, window managers dwm and ratpoison, the Xfce desktop, as well as a selection of graphical applications.
Source: opennet.ru
