Site icon Teens Toons

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
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.

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”
releases
.

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
system
, 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
language
design challenge, an
operating
system
design challenge, a challenge for
security,
reproducibility,
bootstrapping,
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.

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
    them
    up-to-date
    :
    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
    tarballs

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

    Oh, and you may also like package transformation
    options
    ,
    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
    config
    —services,
    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
    CGit
    or
    Zabbix
    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
card
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:
package
definitions
,
system
services
,
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
release
—99
people contributed over 5,700 commits during that time! Here are the
highlights:

  • The ISO installation image now runs a cute text-mode graphical
    installer
    —big
    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
    image

    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
    useful.
  • 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
    options
    ,
    that goes with --with-branch and --with-commit.
  • Guix now has a first-class, uniform mechanism to configure
    keyboard
    layout
    —a
    long overdue addition. Related to that, Xorg
    configuration

    has been streamlined with the new xorg-configuration record.
  • We introduced guix pack -R a while
    back
    :
    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
    user
    namespaces

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

    translation. You can help translate the manual into your
    language

    by joining the Translation
    Project
    .

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

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
Shepherd
more flexible and
snappy, furthering integration with Software
Heritage

will probably be #1 on the to-do list of scientists concerned with
long-term reproducibility, programming language tinkerers may want to
push
G-expressions
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
us.

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
welcome
!

We’re humans—don’t hesitate to get in touch with
us
, 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
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.

Exit mobile version