THE GUIX SYSTEM
Guix takes a novel approach to its package management. Mats Tage Axelsson guides you around it.
W
hen you first choose your distribution, it comes down to what’s available and what’s easy to use. As you learn more about Linux, you’ll start thinking more about how your choices affect your daily use. For many users, the choice of desktop and styling makes the biggest impression. Yet the real difference between distributions is how you manage packages.
The most common package manager is the Debian dpkg one. Ubuntu uses its own version of it, and only the repositories differ. Also, the way the system installs software is the same. Once you decide to install a software package, it goes to the standard position, all according to the Linux Software Base (LSB).
For Guix developers, this system had too many drawbacks, including dependency hell. In this hell, you have a favourite application that depends on library 1.x. All new applications use 2.0 of said library. In this case, the old application must go, or else all your new applications won’t work. Though this is rare for ordinary users, it’s an issue that plagues developers.
To solve this problem Guix developers, searched high and low but couldn’t find a decent solution to this problem. Until NixOS showed the way. They now had an excellent way to handle this problem, and a few others, but it was not GNU compliant and so the GNU Guix system was born.
Distro breakdown
There are two things that make up a distribution: the package manager, and the selection they offer by default. The package managers maintain the binaries or all source code. The default is to download binary packages and place them according to standard. The exceptions are Gentoo, Arch and a few others that default to compiling software.
Compared to those distros, Guix has made a decision to keep all binary files in one big directory called The Store. The designers of NixOS used this concept and the Guix developers re-used the code. It comes as GNU Guix, the package manager and GNU Guix System, the distribution.
If you need to use an odd version of a package then you can install the package manager on your current distribution.
For developers, this is a great way to create a separate environment for each project. You also do not have to worry about an upgrade changing your development environment.
When you first install GNU Guix System, the distribution, you may not notice any difference. Since the install is a simple script, if you run a desktop environment and just regular applications then you can continue as normal. The installer itself is simple: it looks outdated and is a little unpolished, but gets the job done.