PostsTagsAuthors

A brief Guix review

rendaw

Guix-SD (which I’m just going to call Guix from now on) is a Linux distribution featuring a declarative config-based setup with everything from base services and system glue to the config written in GNU Guile.

Is it good?

1TLDR

It’s usable, but be prepared to get at least neck deep in the Guix source!

2The details

21Awesome things

The whole distribution is built in a single language.

No hodge-podge of bash, perl, python, a little golang here, a little c there (well, there is some small amount of c, but we’ll ignore that).

By virtue of using a lot of GNU software that also uses Guile the configuration naturally flows together.

Guile is a real language, with an ecosystem - libraries, tools, documentation, etc. There are lots of websites with tutorials, explanations, questions on SO, etc.

The Guix project places a lot of emphasis on reproducibility: not just of builds for an individual package but also historic package and operating system versions.

The configuration file defines 100% of your system. No manual tweaking, final steps, etc.

The configuration has very little boiler plate!

You can put your system configuration in version control and diff your changes.

Guix abstracts the “current system”

22Not awesome things

The documentation

I’ll admit it’s at least much much better than Nix’s last I checked.

Bugs - in packages are a given, especially coming from Arch, but there are lots of bugs and rough points in core tools (ex: guix system)

Silent misconfiguration a lot of issues with your configuration/command are silently ignored. You’re likely to get a bootable system, but is it the system you wanted?

The official contact point is a mailing list

If you’re not sure why a mailing list is a bad thing:

The bug tracker is also a pseudo mailing list

The source repository… is not modern

There’s no docker image, so you can’t fully automate a project in CI, and I had issues installing the CLI on top of a Debian docker image.

There’s no unified monitoring, logging goes through syslog; no ability to search system logs other than grep.

23Depending on your pain tolerance

I’m fairly positive about Guix. Most of the awesome things are really awesome, the not so awesome things hopefully temporary and improving.

I’ve migrated one of my servers, and I’ll probably slowly migrate the rest of my systems. I have my own guide that I think fills in a lot of the documentation gaps here, so please check it out!