Create: 2022-08-30, Update: 2022-08-30
Gnu guix is a Linux distro that focus on reproducibility. Similar to NixOS. I have been interested in guix for a while. mainly due to its use of guile, a scheme language, and Emacs being the first class resident in guix.
I was quite satisfied with my current build, which is Artix Linux. Everything works fine. I thought guix would be better and decided to switch. I brifely tested guix on a qemu instance, the iso works well, but I was failed to update due to running out of ram. I thought it was not an issue, since if I install it on bare metal, I would have enough ram.
I wiped my hard disk and installed guix. It turned to be a disaster.
Usually, the philosophy or ethics behind a certain distribution does not matter. But for the Gnu people, their insistence on free software is extreme. They cannot stand for any non-free software running on their system. As a result, the Gnu guix becomes a refection of this school of thoughts.
By default, Gnu guix use the linux-libre kernel instead of the normal one. Therefore, some drivers, such as the wifi card in some laptop are not supported in the linux-libre kernel. I am using a desktop, the thing bother me the most is that I am using an Nvidia graphic card, and by default, we cannot install the proprietary nvidia driver.
I am not supporting Nvidia. Nvidia should have make their driver free or at least open source.
To use non-free software in guix, we have to add the nonguix channel. Anything related to issue about nonguix packages are being censored in the guix community. I just want to make my system work, why so difficult?
However, I do appreciate this kind of extreme action towards non-free software, even though the philosophical shit causes me a lot of inconvenience.
The documentation of guix is limited. We do have the extensive official documentation from the guix developers. But there are just not many other documentation or guides. The only reasonable alternative is from David Will, aka System Crafters, System Crafters Guix. It is more beginner friendly. Beyond the initial setup, you are likely to be in the wild west.
Guix tries to integrate every single config into some guile packages or command. It makes some trival actions like adding user a lot easier to reproduce. But for somethings that is not that straight forward, you would have to read the documentation to see how it works. It turns me into a reading machine for a hours.
The integration for Emacs packages sounds ridiculous to me. I already have all my Emacs package in place using straight.el. Why bother using another layer of abstraction that I cannot control easily within Emacs?
By default, the guix gui installation has an option of selecting EXWM as the primary window manager. I, as an EXWM user, of course choose to use without a doubt. But guess what I see after booting into the freshly installed system. Yellow. A fucking bright yellow that blind my eyes. The background is this lovely fresh lemon color. There were some words on it. But the words were in white that I can hardly read them. After diving my head into my monitor and inspecting carefully. I realized that was the login screen. How fuck up is that?
Speed is the only point that I cannot stand for. Installing guix is
slow, very slow. It takes over 30 mins to download all the essential
and install onto my hard drive using a bootable iso stick. And it
takes literally forever to run
guix pull to do my first update.
I am experienced in installing linux on metal. Installing any Arch base system takes me less than 20 mins from nothing to a usable xorg window manager.
Every package was downloading at a unreasonable slow speed, from 30KB to 300KB. My internet is 1GB fiber to the home. On a regular Arch update, the downloading speed is at least 3MB, in parallel.
I don't know if that is because there are simply not that many mirror for guix. From my observation, most of my packages are from the official gnu.
I did not manage to wait for
guix pull to finish. I am using wifi,
and the wifi kept disconnecting for no reason. I suspected it to be
something wrong with wpa, and reconnect for a lot of
times. I then tried to mess with dns related things by using the
dhclient command. At that point I realized guix was using Network
Manager. Resetting with
dhclient resulted in internet connection
less than 3mins. I just cannot finish my update. Let alone using the
I rage quit. Make an Artix iso usb and call it a day. Everything was as before thank for my detailed notes of installation written a long time ago. And it did not take long, it just need about 30mins.
Gnu guix is a great concept. But to me at the current stage, it is still just a concept, not a ready to use system. I may try it in the future, but not directly on metal like this time.