GNU Guix 1.3 released: an advanced distribution of the GNU system
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.
Feature
- Liberating. Guix is an advanced distribution of the GNU operating system developed by the GNU Project—which respects the freedom of computer users.
- Dependable. Guix supports transactional upgrades and roll-backs, unprivileged package management, and more. When used as a standalone distribution, Guix supports declarative system configuration for transparent and reproducible operating systems.
- Hackable. It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs) to define packages and whole-system configurations.
Changelog v1.3
User experience
A distinguishing Guix feature is its support for declarative deployment: instead of running a bunch of
guix install
andguix remove
commands, you runguix package --manifest=manifest.scm
, wheremanifest.scm
lists the software you want to install in a snippet that looks like this:;; This is 'manifest.scm'. (specifications->manifest (list "emacs" "guile" "gcc-toolchain"))
Doing that installs exactly the packages listed. You can have that file under version control and share it with others, which is convenient. Until now, one would have to write the manifest by hand—not insurmountable, but still a barrier to someone willing to migrate to the declarative model.
The new
guix package --export-manifest
command (and its companion--export-channels
option) produces a manifest based on the contents of an existing profile. That makes it easy to transition from the classic “imperative” model, where you runguix install
as needed, to the more formal declarative model. This was long awaited!Users who like to always run the latest and greatest pieces of the free software commons will love the new
--with-latest
package transformation option. Using the same code asguix refresh
, this option looks for the latest upstream release of a package, fetches it, authenticates it, and builds it. This is useful in cases where the new version is not yet packaged in Guix.More…