GNU Guix 1.1.0 released

Ludovic Courtès, Marius Bakke — April 15, 2020

We are pleased to announce the release of GNU Guix version 1.1.0!

The release comes with ISO-9660 installation images, a virtual machine image, and with tarballs to install the package manager on top of your GNU/Linux distro, either from source or from binaries. Guix users can update by running guix pull .

If you wonder what installing Guix System is like, this video gives an overview of the guided installation process:

Download video.

There are more “getting started” videos.

It’s been 11 months since the previous release, during which 201 people contributed code and packages. This is a long time for a release, which is in part due to the fact that bug fixes and new features are continuously delivered to our users via guix pull . However, a number of improvements, in particular in the installer, will greatly improve the experience of first-time users.

It’s hard to summarize more than 14,000 commits! Here are some highlights as far as tooling is concerned:

On the distro side:

At the programming interface level and under the hood, many things changed as well, notably:

The new with-build-handler form allows us to better support dynamic dependencies as introduced by grafts. More on that in a future post, but suffice to say that it fixes a longstanding user interface and performance issue.

form allows us to better support dynamic dependencies as introduced by grafts. More on that in a future post, but suffice to say that it fixes a longstanding user interface and performance issue. The remote-eval procedure in (guix remote) supports remote execution of Scheme code as G-expressions after having first built and deployed any code it relies on. This capability was key to allowing code sharing between guix deploy , which operates on remote hosts, and guix system reconfigure . Similarly, there’s a new eval/container procedure to run code in an automatically-provisioned container.

procedure in supports remote execution of Scheme code as G-expressions after having first built and deployed any code it relies on. This capability was key to allowing code sharing between , which operates on remote hosts, and . Similarly, there’s a new procedure to run code in an automatically-provisioned container. The new lower-gexp procedure returns a low-level intermediate representation of a G-expression. remote-eval , eval/container , and gexp->derivation are expressed in terms of lower-gexp .

procedure returns a low-level intermediate representation of a G-expression. , , and are expressed in terms of . The with-parameters form allows you, for instance, to pin objects such as packages to a specific system or cross-compilation target.

form allows you, for instance, to pin objects such as packages to a specific system or cross-compilation target. Performance was improved for common low-level operations.

That’s a long list! The NEWS file lists additional noteworthy changes and bug fixes you may be interested in.

Enjoy!

About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.