Why I used Gentoo and why I stopped

And moved to NixOs

I used Gentoo Linux for well over a decade and have some spare time on my hand, so why not waste it by writing about Gentoo a bit?

Why did I start running Gentoo

I figured that learning how to use Linux might be a wise decision1 and set up Ubuntu, can’t remember if I started out with a VM or a full install. The whole process was rather simple and got me a working Desktop to dick around in but I didn’t really learn anything from doing that. People back then recommended Linux From Scratch (LFS) but that doesn’t really result in a usable system2 so I used the next best thing, which was Gentoo. I opened the Gentoo Handbook on a Laptop3 and worked through it. The first install probably took a day or something, later tries took something like an hour4, I spend at least another day trying to figure out why my mouse wasn’t working until I found the correct kernel module I was missing5.

Things I like about Gentoo

I used it a long time so there is obviously something positive about it.

You can learn a lot about how Linux Systems tend to work

Gentoo forces you to spend time with the various parts that make up a typical Linux distribution, like the Kernel and Xorg, as you have to configure them and somethimes have to make decisions about them, for example about systemd or OpenRC. It served my original goal quite well.

It is quite simple

Gentoo doesn’t really introduce a lot of tools/concepts so one can really get a decent grasp of how to work it in a reasonable timeframe

Gentoo is great for customization

The base system doesn’t really contain anything but the package manager so it is really simple to build a system that just contains the things one actually uses6. Packages can be further customized with the (in)famous USE flags. Don’t have any bluetooth hardware? Disable the USE flag and your system won’t install anything for it. Doesn’t really make much of a difference in practice but it is nice.

Writing packages is easy

The official package repo contains a lot but not everything. Which isn’t much of a problem, really, as it is really easy to use overlays from other people or just have a local directory somewhere with your own packages. Actually writing packages is pretty straightforward, a lot of projects use Make with a standard setup and that means you just have to point to the sourcecode and list the dependencies.

You get to feel like a hacker

At least for the first few weeks/months. It felt cool to install something and see nonsense fly over the terminal while the compiler was doing it’s job.

So, what’s not so great about it, then?

It essentially comes down to one thing: Compiling everything takes time. Modern hardware kind of softens that problem for a lot of packages but I always dreaded the next webkit-gtk rebuild because a dependency changed or something and now the system upgrade took an hour or something. Gentoo even bundles prebuilt -bin packages for the worst offenders7.

My way away from Gentoo

I didn’t really just decide to move on, it was a more gradual thing. At some point I took note of The NixOs package manager (Nix), especially the whole thing about Flakes and the corresponding direnv integration. Essentially this allows a setup where you cd into the directory of a project and your system will automatically provide all the packages you need to run/build/whatever the project, no matter what the surrounding system actually has installed. This worked really well after I figured out how the hell this worked8. I then discovered home-manager as a really nice way to handle dotfiles, so I started using that as well.

At some point I wished I could manage more of my system the simple configuration approach Nix offers. Essentially you write a nix config and the package manager then figures out how to install/configure everything. Seemed like a good idea and that is exactly what NixOs offers, so ultimately decided to give it a go.

I don’t really regret the move, even if I fondly look back at Gentoo. Might be somewhat nostalgia influenced9.

Footnotes:

1

one of my brighter moments

2

you know, with packages and everything

3

I made the mistake to install from a Stage 3 ISO, just use Fedora or something

4

It gets significantly easier once you know what you are doing

5

Just use Genkernel or something

6

don’t install anything else and you are good to go

7

Looking at you, Chromium

8

“figured out” is a strong term, I still don’t really have any idea how all of this works and I run NixOs for like a year now

9

Imagine being nostalgic about a linux distro…