GNU Guix 1.0 package manager and GuixSD based distribution available

Took place package manager release GNU Guix 1.0 and the distribution kit GuixSD GNU/Linux (Guix System Distribution) built on its basis. A significant change in the version number is due to the completion of the implementation of all objectivesset to form a landmark release. The release summed up seven years of work on the project and is considered ready for everyday use. For loading formed images for installation on USB Flash (243 Mb) and use in virtualization systems (474 ​​Mb). Work is supported on i686, x86_64, armv7 and aarch64 architectures.

The distribution kit allows installation both as standalone OS in virtualization systems, in containers and on conventional equipment, and Launching in already installed GNU/Linux distributions, acting as a platform for deploying applications. The user is provided with functions such as dependency accounting, repeatable builds, work without root, rollback to previous versions in case of problems, configuration management, environment cloning (creating an exact copy of the software environment on other computers), etc.

All innovations:

  • Added new interactive installer, which works in text mode;

    GNU Guix 1.0 package manager and GuixSD based distribution available

  • Prepared a new image for virtual machines, suitable both for getting acquainted with the distribution kit and for creating working environments for development;
  • Added new system services cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent and zabbix-server;
  • Updated software versions in 2104 packages, added 1102 new packages. Including updated versions of 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;

  • GNU Shepherd service manager updated to version 0.6, which implements the one-shot service mode, in which the service is marked as stopped immediately after a successful launch, which may be required to start one-time work before other services, for example, to perform cleaning or initialization;
  • Added "install", "remove", "upgrade", and "search" aliases typical of other package managers for the "guix package" command. To search for a package, you can use the "guix search" command, to install "guix install", and to upgrade "guix pull" and "guix upgrade";
  • Added a progress indicator to the package manager and highlighting diagnostic messages with colors. By default, most commands are now run without verbosity, which is enabled by a separate "-v" (--verbosity) option;
  • 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", "guix weather -coverage";
  • New options added package conversions "--with-git-url" and "--with-branch";
  • The distribution added configuration fields "keyboard-layout" to define the keyboard layout, "xorg-configuration" to configure the X server, "label" to label the section, and "essential-services" to define basic services;
  • Added "guix pack -RR" command to create relocatable executable tarballs that can be run relative to both usernamespace paths and PRoot;
  • 'guix pull' provides a package cache to speed up name lookups and embeds the 'glibc-utf8-locales' package;
  • Ensured full repeatability (bit for bit) of ISO images generated by the "guix system" command;
  • GDM is used as login manager instead of SLiM;
  • Support for building Guix using Guile 2.0 has been dropped.

Recall that the GNU Guix package manager is based on the developments of the project nix and in addition to the typical package management functions, it supports such features as transactional updates, the ability to roll back updates, work without obtaining superuser privileges, support for profiles associated with individual users, the ability to simultaneously install several versions of one program, garbage collection tools (identifying and removing unused versions of packages ). To define application build scripts and packaging rules, it is proposed to use a specialized high-level domain-specific language and Guile Scheme API components that allow you to perform all package management operations in the Scheme functional programming language.

The ability to use packages prepared for the Nix package manager and placed in the repository is supported
Nixpkgs. In addition to package operations, you can create scripts to manage application configuration. When a package is built, all associated dependencies are automatically downloaded and built. It is possible both to download ready-made binary packages from the repository, and build from source with all dependencies. Implemented tools to keep versions of installed programs up to date by organizing the installation of updates from an external repository.

The build environment for packages is formed as a container containing all the components necessary for the operation of applications, which allows you to create a set of packages that can work without regard to the composition of the base system environment of the distribution, in which Guix is ​​used as an add-on. Dependencies can be determined between Guix packages by scanning the hash identifiers in the directory of installed packages to find the presence of already installed dependencies. Packages are installed in a separate directory tree or subdirectory in the user's directory, which allows it to coexist with other package managers and provide support for a wide range of existing distributions. For example, a package is installed as /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/ where "f42d58..." is the unique package identifier used to control dependencies.

The distribution includes only free components and comes with a GNU Linux-Libre kernel stripped of non-free binary firmware elements. GCC 8.3 is used to build. The service manager is used as the initialization system GNU Shepherd (ex dmd) developed as an alternative to SysV-init with dependency support. The control daemon and Shepherd utilities are written in the Guile language (one of the implementations of the Scheme language), which is also used to define service startup parameters. The base image supports console mode, but to install prepared 9714 prepackaged packages, including X.Org-based graphics stack components, dwm and ratpoison window managers, the Xfce desktop, and a selection of graphics applications.

Source: opennet.ru

Add a comment