VehiclesFashionRecipesBlogsHuntTravelsSportFunHandmadeITEducation
Mini-Games
x

x
zakruti.com » IT - Software » IT, programs, coding
My Thoughts On GNU Guix After Three Days DistroTube

My Thoughts On GNU Guix After Three Days DistroTube

FBTwitterReddit

video description

Rating: 4.0; Vote: 1
My Thoughts On GNU Guix After Three Days DistroTube I have spent several hours each of the last three days playing around with GNU Guix ( mostly watching packages build :D ). I have it running in a VM and on a Lenovo Thinkpad. There is a lot to love about Guix, but there are also some challenges with it. Some of the problems I initially had were configuring Guix to recognize new window managers that I installed. Also, running a make install doesn't work on my Suckless builds. And qtile isn't packaged for Guix and a pip install qtile fails on Guix. But I'm still having fun! - https://guix.gnu.org/
Date: 2022-03-30

Comments and reviews: 10


I have been using Guix as my secondary package manager for quite while now on Kubuntu. I have a couple of remarks in regards to your points.
- If compiling packages takes too long I recommend waiting a day or two after doing -guix pull-. That command updates the package definitions to the current bleeding edge. Letting the definitions ferment for a bit allows the Guix build servers to provide pre-compiled binaries. Then when you do -guix upgrade-, Guix will download the binaries instead of building from source.
- The reason you cannot do -sudo make install- or use language-specific package managers is because you are not supposed to install libraries. No one actually needs libraries, people need applications, and it's the applications which need libraries. Of course you still -can- install libraries explicitly, but that's not the way it is supposed to be used. I'll elaborate a bit later.
- As I said above, the Guix package manager can be used on foreign distros as well. That allows one to have a sort of rolling release package system on top of a stable distro. But the biggest advantage of Guix in my opinion is that it is a proper solution to dependency hell and breaking updates.
- You don't really need to know Scheme to configure Guix, but it helps. Scheme is a programmable programming language (as are all Lisps), and the Guix developers added a special Guix -language- on top of Scheme. It looks a lot like JSON. However, if you know Scheme you can add logic to your config using a full programming language. This is particularly useful when defining new packages. If you want to learn Scheme I recommend the GNU Guile manual. If you want to off the deep end I recommend Structure and Interpretation of Computer Programs (SICP). The Guix website also has some more recommendations, check it out. Scheme is a very small and elegant language. It is quite different, so it might take a bit to wrap your head around, but once it clicks you will be good to go.
The idea behind Guix is a novel concept pioneered by Nix: functional package management. What does this mean? It means that packages are not installed system-wide and that they do not modify the system. As you have noticed, there is a central place where packages are stored, called the store. Every package exists in isolation, you can have several different, even conflicting, packages in the store. If a package has a dependency on another package the connection is achieved through symlinks and environment variables.
So how about libraries? Libraries are regular packages, except you never explicitly install them (although you can if you really want to). Instead you declare them as dependencies of other packages. If you really need a particular library, for example to compile some code, you can temporarily enrich your shell with the libraries using -guix environment-. Remember that the libraries are in the store. All -guix environment- does is set up some symlinks and environment variables for the libraries to be found. Guix does not modify the system (hence why you don't need sudo), so different users can have different versions of the same package installed without conflict.
When it comes to language-specific libraries you are advised to do the same. Instead of doing -pip install blubb- you should do -guix environment --ad-hoc python-blubb- (sorry, can't think of any particular Python library off the top of my head).
Guix has many more benefits, but I think these points are the most relevant to your video.

reply

Something to consider for the gaming livestream problem. Use mumble for the voice chat, and for the games there are some free options like Minetest, Xonotic, Hedgewars, etc. There's a games.scm file you can look through to see what games are packaged.
I've used Guix System on my main machine for a few years now, with a small break using NixOS in the middle. I think it's usable without knowing how to make packages, but it'd be a lot better for those willing to package some of their own things. There's a Guix Wishlist on the LibrePlanet wiki, and you can add things to the list that you wish were packaged, and then I guess people work through the list as they feel like it. They're a little lacking in packagers. The people who frequently package things are often busy with something else. This is really the biggest problem with Guix. If you aren't willing to get your hands dirty, then something not being packaged means not getting to use that thing in many cases.

reply

-DistroTube seems to keep missing the point of Guix (and NixOS - contrary to what he says in the opening of this video, there is a distro that is very similar to Guix, and that's NixOS, which actually inspired Guix).
So instead of editing /etc/config.scm, users can install most packages locally - obviously some packages don't make sense installed at a user level.
The real power of Guix and NixOs is declarative configuration. You can stick most of your system-level config into one or more files in /etc, then put it in a git repository. To build your new machine, you clone your repo and then run the reconfiguration command and it installs, builds, and configures everything you've defined in your OS-level config (/etc/config.scm for Guix; /etc/nixos-config on NixOs).

reply

My biggest reason for not using 'free' distros is that they're a pain in the ass. Things don't work, everything is a hassle, and you have to work 10x as hard to get anything done. It's great for a learning experience and something to tinker with, but I wouldn't use it in any environment where I needed anything to work quickly and correctly without a ton of extra work, research, and troubleshooting. I also don't use Windows for the same reasons, since it's always a bloated pain in the ass and seems to always need to update.
reply

Qt has 'non free' elements that makes some if not all Qt based programs more difficult to run on the FSF approved Distros, this is one of the reasons I use Arch and not Parabola.
You may wanna get an atheros wireless card for that Thinkpad although you may need to re flash a third party or modified bios to do so (this may also fix the overheating and fan control)

reply

Guix looks really cool, but I can't use it on my hardware. Anyway, the fan in your laptop might be running high because Guix may not have a free driver for your GPU, so everything may only be utilizing your CPU. I did a source install of Gentoo, and could not figure out how to get it to use my GPU. So my CPU was working pretty hard.
reply

-DistroTube, please don't install tons of proprietary garbage. There are tons of libre replacements for all the programs you mentioned.
Also, I'd highly recommend using Parabola. It's a 100% libre distro like Guix, except it's based on Arch, so I think it will be more your style. I've been using it for months, and it's awesome.

reply

Your alacritty build would have taken a minute or so from cold build if your vm had enough ram - rustc is absolutely notorious for requiring much more ram than most compilers, your vm should have at least 8gb, preferably 16. I can literally see you have 650mb ram free - this isn't even close to enough.
reply

Hey DT, i read up about an interesting distro called Bedrock Linux. Maybe it could be a way where you can run Guix as much as you can, and use resources from another distro when needed. Its weird how it works but Bedrock is very interesting, discovered it this morning and will most likely try
reply

it would be great if you invest as much time to understand nixos. guix is based on it's design, so it's very similar, but don't has many of the mentioned problems. if you encounter any issue, reach out to the community... and rtfm, like your mug say ;)
reply
Add a review, comment






Other channel videos