Lagrange Point

Back to Guix

Due to things happening in the NixOS community, which at the time of this post, have been somewhat solved, I decided to give Guix another try anyway.

I used Guix a long time ago when I used to live somewhere else, but I didn’t really get the syntax. I still don’t quite get it, but I am getting better about it, thanks to my extensive usage of Emacs.

Now, what is Guix and why would you would use it over say, NixOS, Fedora, OpenSUSE, Mac, Windows or literally anything else?

For starters, Guix is a fork of Nix. Now, Nix is a programming language, package manager and Linux distribution. We will primarily discussing NixOS, which, as you have guessed, uses both the Nix language and Nix package manager, but they are fully integrated into the system to create something amazing.

What is NixOS exactly though? We could go and continually define what makes up Linux, but for the purposes of this blog, I will only go and explain what makes NixOS different from a regular Linux distribution.

In a regular Linux distribution, everything is done imperatively, meaning that you the user must call commands, or use the software store of your specific distribution to download and install programs/packages. With NixOS, you can declaratively write out, in a file, what programs to use, how to use them, and so on. Furthermore, everything done by NixOS is atomic, meaning you can rollback any changes you dislike concerning the state of various things, including the entire operating system itself. Every time you rebuild the operating system to a new state, it takes a snapshot of the old state and makes it where you can boot back into it if the new state is problematic. It’s much harder to do that sort of thing in regular Linux distributions.

Guix also does all these things. The difference between NixOS and Guix, however, is that Guix is more of a community-run distribution, built for scientific research(Altho it can just be easily used as a regular Linux distribution), and the most important difference is that Guix only uses Free Software. NixOS allows you to easily use proprietary software. such as Steam, Zoom, and many others, which are in it’s package repositories. Guix doesn’t have any sort of those programs at all. Additionally, Guix uses the Linux Libre kernel, which means any sort of hardware in which there are free drivers for, it won’t work on.

Now, NixOS is a lot easier to get working on virtually anything due to it using the regular Linux kernel, but due to it being so much larger in size and scope, it also suffers from fragmentation issues, documentation lapses and so on and so forth. Guix still has some of these issues as well, but Guix is a lot more focused on providing good features to everyone.

Enter Nonguix. Nonguix isn’t a fork of Guix, but more of a method to get Guix to use the regular Linux kernel. This has several drawbacks, but it is still important for those people who can’t get access to computer which only uses free hardware or the like.

I will be using Nonguix to re-enter the world of Guix, and hopefully remain there for quite a long while.