GNU Guix 1.0.0 Released

GNU Guix 1.0.0 released

We are excited to announce the release of GNU Guix version 1.0.0!

The release comes with ISO-9660 installation
a virtual machine
and with tarballs to install the package manager on top of your
GNU/Linux distro, either from

or from
Guix users can update by running guix pull.

Guix 1.0!

One-point-oh always means a lot for free software releases. For Guix,
1.0 is the result of seven years of development, with code, packaging,
and documentation contributions made by 260 people, translation work
carried out by a dozen of people, and artwork and web site development
by a couple of individuals, to name some of the activities that have
been happening. During those years we published no less than 19 “0.x”

We took our time to get there, which is quite unusual in an era where
free software moves so fast. Why did we take this much time? First, it
takes time to build a community around a GNU/Linux distribution, and a
distribution wouldn’t really exist without it. Second, we feel like
we’re contributing an important piece to the GNU operating
, and that is surely
intimidating and humbling.

Last, we’ve been building something new. Of course we stand on the
shoulders of giants, and in particular Nix,
which brought the functional software deployment paradigm that Guix
implements. But developing Guix has been—and still is!—a challenge in
many ways: it’s a programming
design challenge, an
design challenge, a challenge for
usability, and more. In other words, it’s been a long but insightful
journey! 🙂

Presumably some of readers are discovering Guix today, so let’s recap
what Guix can do for you as a user. Guix is a complete toolbox for
software deployment in general, which makes it different from most of
the tools you may be familiar with.

Guix manages packages, environments, containers, and systems.

This may sound a little abstract so let’s look at concrete use cases:

  • As a user, Guix allows you to install applications and to keep
    search for software with guix search, install it with guix install, and maintain it up-to-date by regularly running guix pull and guix upgrade. Guix follows a so-called “rolling
    release” model, so you can run guix pull at any time to get the
    latest and greatest bits of free software.

    This certainly sounds familiar, but a distinguishing property here
    is dependability: Guix is transactional, meaning that you can at
    any time roll back to a previous “generation” of your package set
    with guix package --roll-back, inspect differences with guix package -l, and so on.

    Another useful property is reproducibility: Guix allows you to
    deploy the exact same software environment on different machines
    or at different points in time thanks to guix describe
    and guix pull.

    This, coupled with the fact that package management operations do
    not require root access, is invaluable notably in the context of
    high-performance computing (HPC) and reproducible science, which the
    Guix-HPC effort has been
    focusing on.

  • As a developer, we hope you’ll enjoy guix environment,
    which allows you to spawn one-off software environments. Suppose
    you’re a GIMP developer: running guix environment gimp spawns a
    shell with everything you need to hack on GIMP—much quicker than
    manually installing its many dependencies.

    Developers often struggle to push their work to users so they get
    quick feedback. The guix pack
    provides an easy way to create container images for use by Docker
    & co., or even standalone relocatable

    that anyone can run, regardless of the GNU/Linux distribution they

    Oh, and you may also like package transformation
    which allow you define package variants from the command line.

  • As a system administrator—and actually, we’re all system
    administrators of sorts on our laptops!—, Guix’s declarative and
    unified approach to configuration management should be handy. It
    surely is a departure from what most people are used to, but it is
    so reassuring: one configuration file is enough to specify all the
    aspects of the system
    file systems, locale, accounts—all in the same language.

    That makes it surprisingly easy to deploy otherwise complex services
    such as applications that depend on Web services. For instance,
    setting up
    is a one-liner, even though behind the scenes that involves setting
    up nginx, fcgiwrap, etc. We’d love to see to what extent this helps
    people self-host services—sort of similar to what
    FreedomBox and
    YunoHost have been focusing on.

    With guix system
    you can instantiate a configuration on your machine, or in a virtual
    machine (VM) where you can test it, or in a container. You can also
    provision ISO images, VM images, or container images with a complete
    OS, from the same config, all with guix system.

The quick reference
shows the
important commands. As you start diving deeper into Guix, you’ll
discover that many aspects of the system are exposed using consistent
Guile programming interfaces:
the “init” system, and a whole
bunch of system-level libraries. We believe that makes the system very
hackable, and we hope you’ll find it as much fun to play with as we do.

So much for the overview!

For those who’ve been following along, a great many things have changed
over the last 5 months since the 0.16.0
people contributed over 5,700 commits during that time! Here are the

  • The ISO installation image now runs a cute text-mode graphical
    thanks to Mathieu Othacehe for writing it and to everyone who
    tested it and improved it! It is similar in spirit to the Debian
    installer. Whether you’re a die-hard GNU/Linux hacker or a novice
    user, you’ll certainly find that this makes system installation
    much less tedious than it was! The installer is fully translated
    to French, German, and Spanish.
  • The new VM

    better matches user expectations: whether you want to tinker with
    Guix System and see what it’s like, or whether you want to use it
    as a development environment, this VM image should be more directly
  • The user interface was improved: aliases for common operations
    such as guix search and guix install
    are now available, diagnostics are now colorized, more operations
    show a progress bar, there’s a new --verbosity option recognized
    by all commands, and most commands are now “quiet” by default.
  • There’s a new --with-git-url package transformation
    that goes with --with-branch and --with-commit.
  • Guix now has a first-class, uniform mechanism to configure
    long overdue addition. Related to that, Xorg

    has been streamlined with the new xorg-configuration record.
  • We introduced guix pack -R a while
    it creates tarballs containing relocatable application bundles
    that rely on user namespaces. Starting from 1.0, guix pack -RR
    (like “reliably relocatable”?) generates relocatable binaries that
    fall back to PRoot on systems where

    are not supported.
  • More than 1,100 packages were added, leading to close to 10,000
    , 2,104
    packages were updated, and several system services were
  • The manual has been fully translated to
    and Spanish
    translations are nearing completion, and work has begun on a

    translation. You can help translate the manual into your

    by joining the Translation

That’s a long list already, but you can find more details in the

One-point-oh is a major milestone, especially for those of us who’ve
been on board for several years. But with the wealth of ideas we’ve
been collecting, it’s definitely not the end of the road!

If you’re interested in “devops” and distributed deployment, you will
certainly be happy to help in that area, those interested in OS
development might want to make the
more flexible and
snappy, furthering integration with Software

will probably be #1 on the to-do list of scientists concerned with
long-term reproducibility, programming language tinkerers may want to
further, etc. Guix 1.0 is a tool that’s both serviceable for one’s
day-to-day computer usage and a great playground for the tinkerers among

Whether you want to help on design, coding, maintenance, system
administration, translation, testing, artwork, web services, funding,
organizing a Guix install party… your contributions are

We’re humans—don’t hesitate to get in touch with
, and enjoy Guix 1.0!

About GNU Guix

GNU Guix is a transactional package
manager and an advanced distribution of the GNU system that respects
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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Next Post

ACLU: Border Agents Violate Constitution When They Search Electronic Devices

Thu May 2 , 2019