Why Gentoo?
46 points by dzwdz
46 points by dzwdz
I spent some time on Gentoo between 2019 and 2022 and I left with some mixed opinions.
On one hand, it absolutely has that fun factor the author is talking about: you feel like you've "earned" your system and that it really is yours, as installation isn't just some app you click-click-click through, but rather the (very nicely written) guide expects you to make choices and tailor the distro to your liking.
Leaving out stuff you don't need and seeing how "lean" your system can be without compromising on usability is a cool exercise too and so is configuring your own kernel (though, in my experience, it is also arguably Gentoo's biggest footgun, unless you have a recovery USB or other backup available, you're kind of boned). Not having to compile in stuff you wouldn't use anyway is in a weird sense very "liberating".
Also, while I didn't bother with ricing beyond the basic march=native stuff (even though Gentoo is Rice), the system did feel a lot snappier than the other distros I've tried at the time. Perhaps this was merely an illusion (I never made any benchmarks, so I cannot make any strong claims), but regardless it made my old T440p that I used through my uni years feel much nicer to use.
On the other hand I often felt like I'm "fighting" with my system.
Not even the builds (which I expected to take time), but emerge itself felt insufferably slow, whether I was querying for packages or trying to install stuff with more complex dependency graphs, it always felt like things were taking just that much longer than you'd expect that you start worrying whether the PC is freezing up or you've made a mistake or something.
USE flags were often poorly documented or had unexpected side-effects and that caused me some very annoying debugging trips, that I felt like better documentation could have avoided. I mean things like apps straight up not working if you had one flag on, but didn't switch another (seemingly completely independent) flag on too.[0] It also felt weird that you had to "hunt" for them on either websites or using something like equery and then set with flaggie, instead of this functionality being integrated into the base package manager.
Figuring out your kernel config is very much a skill that takes time and at the time none of the guides I've found were helpful beyond the basics. I believe this has not been an issue for a while because Gentoo introduced binary kernels, which should completely eliminate this problem for anyone who doesn't want to mess with manual configs, but at the time it felt like you're either forced to tread a mine-field or just compile a "fat" kernel, which took an awful lot of time. It was not fun to face unexpected crashes, regressions, etc. because you're just a bloke who likes Linux and not someone who properly understands the different kernel subsystems and how they work together. My bad, in a sense, but also it was rough.
qt-webkit was the bane of all slow machines. I'm not 100% sure, but I think that one too had eventually gotten a binary package, because it simply dwarfs most other common software one might install. For me every update of it meant an additional 2-3 hours of compilation atop what I was actually trying to install/update. This isn't really a "flaw" of Gentoo, it wears "source-first" on its chest proudly, but as an end user this one package caused quite a bit of misery.
Finally (though perhaps this is the most "my problem" of all aforementioned points), Gentoo is absolutely not an "on a whim" system. If you need something, you better have the time to wait for things to compile. Unless you're primarily using small stuff, "app-hopping" is a no-go. Which is usually not a huge problem, but it bit me a couple of times when I really needed something fast and didn't have it available. I also frequently didn't have the opportunity to keep my PC running overnight, which left me the unfortunate choice of whether I put all my processing power into getting things compiled and be barred from my PC or keep a precious core for myself, which would leave me with a technically functional system that would occasionally lag hard and also compile much longer than it should have.
Ultimately, I folded and took the pragmatic choice: That is to say, I went back to Arch, because I couldn't afford to mess around on the PC I used for my studies. Yet at the end of the day, I still came away with a lot of respect for Gentoo. It gave me a whole new perspective how a distro may work and (regardless of the frustration it occasionally caused) I learned a lot about the gory internals.
Reading this blogpost (and also these writing down my experiences) made me feel very nostalgic though. And from what I've heard, a lot of the rough edges have been since sanded away. Maybe I will give it another shot eventually.
[0]: This is actually remarkably similar to what I've experienced with Nix packages that have switches. Sometimes even when the description seems obvious, a change can bring unexpected effects.
That is to say, I went back to Arch, because I couldn't afford to mess around on the PC I used for my studies.
I had a similar arc but my gentoo usage went away after my laptop had a bad bit in a rank of RAM and I was trying to get latex to work for something I needed turned in a few hours later. Went to arch, then void.
I did previously run Funtoo on a raspberry pi B. (No bloody 2, 3, 4, or 5). That was seriously fun.
My first Gentoo box was a dual CPU Xserve G4. 2 gigs of RAM and it took me the better part of a week to boot from the system (instead of rebuilding the kernel over and over trying to get it to boot).
The thing that keeps me farthest from Gentoo is your point about "on a whim" being incompatible. I wanted to do some audio work so I got Audacity. A few hours later. We use our computers to do work for us. Sometimes we want to just use our computer instead of maintaining our computer.
I love Gentoo. One of the killer features is that it’s a rolling release distro. I had a server that ran continuously for 15 years. It ran Gentoo. It would’ve kept on going if I didn’t have to switch provider. It was easier to install afresh than try to port over an image. I haven’t had same luck with Debian or Fedora. I tried both and both are a royal pain if you need a version of a lib/app that is not pre-packaged for that specific version. I haven’t had much luck with upgrading those either: somethings broken after upgrade and downtime is noticeable.
It's funny how Gentoo turned out to be the distribution that enabled such long surviving systems.
My personal server is 17 years old. I got lucky with the VM provider so it's been a very continuous and high uptime ride. Perhaps about 1 day total downtime throughout the 17 years. I originally got the system when it became unfeasible to host email on a residential IP.
My desktop system dates back to 2008 so about 18 years. The reason it's that age is because that's when I switched to a 64-bit userspace. Never had a reason or urge to redo the image since. Nothing is left of the original hardware of course (unless I count my Datahand keyboard) but it has been a gradual replacement, Ship of Theseus style.
For me Gentoo is about transparency, choice and flexibility. I always had a strong sense of how I wanted my computers to work and Gentoo has been a great tool to help make that happen.
Those all sound like very laudable aims from a lovely project. I haven't tried Gentoo for decades but I have such fond memories (though at the time, I was not happy) of leaving my PC compile something overnight; sometimes to find out, when I woke up, that it had failed about 80% through because some dependency couldn't be found on the system.
Maybe I should give it a try again. "Gentoo aims to be fun" - I think it would be.
Years ago I used to use it for a production service, running BOINC. Various packages (PHP, Perl, Apache IIRC) needed to be compiled with particular flags (I don't recall which) that weren't available in the default Fedora repos, so the previous sysadmin compiled them all by hand and never updated them. Portage was a much more pleasant solution.
I've been on gentoo for about 15 years on my main dev box, switching over from debian unstable.
To be honest I can't quite say why I'm using it and why I like it; which I think means that at the end of the day it just works and I'm not compelled to change.
There are minor inconveniences, sure.
Being on ~amd64 means newer software but also that binary packages for libreoffice and friends are not usable and they may take some time to compile.
Occasionally emerge chokes on me and requires some hammering but the experience is not unlike that of apt on debian sid.
What I really find spectacular is the responsiveness, technical competence and drive to dig and resolve issues of the package maintainers and the community at large. Try submitting something to bugs.gentoo.org once in your lifetime :)
To be honest I can't quite say why I'm using it and why I like it; which I think means that at the end of the day it just works and I'm not compelled to change.
I think this is basically where I am. It works how I want a Linux distribution to work and nothing seems like a big enough reason for me to change. I’ve thought about trying Chimera but that’s about it (and I haven’t tried it, just thought about it lol)
Having run Gentoo as my main desktop for 14 years (no reinstall, it's still the system I set up back then, transplanted from computer to computer), I can definitely recommend it. It's rock-solid. I switched directly from Ubuntu to it with only a few months of Linux experience then. The installation alone taught me so much (and was doable with the excellent documentation), and in all of those years, I have racked up a lot of Linux knowledge thanks to its hands-on approach.
You can run the compiled system upgrades in the background with a low load, and it's much more stable than binary-based systems. What really sells it for me is the tooling, e.g. crossdev for generating custom cross-compilation toolchains with a single command.
Gentoo never failed on me in all of those years. If you haven't already, definitely check it out!
So many good reasons! I'm rebuilding my home lab, I have a VisionFive 2 (RISC-V/8 GB RAM) and I was planning on either put Alpine Linux or Gentoo on it. Both support it, but Gentoo allows you to use systemd (which I prefer over OpenRC) and I've only used Gentoo a few times, so it will be fun!
I still miss how nice portage is: Parallel installs, understandable error messages, patching by the user (just drop a file into the right /etc/portage/ subdirectory), sandboxing for the builds, configurability…
But at some point, I didn't want to wait for stuff to compile any more (even with the large packages being available as binary packages)…
FWIW, everything(?) in ::gentoo has binary packages available for the main profiles nowadays, which is pretty nice. If you start changing USE flags, you have to still fallback to building yourself though
I use Gentoo (on a CI server) not because performance or anything like that, but because it's trivial to apply patches or do rebuilds with specific flags for specific packages. Dump it in /etc/portage/packages, done.
I ran Gentoo on my main (then only) machine in the latter half of the oughts. I think that that time is responsible for most of my Linux (not CLI, but system) knowledge – even though many tools from back then have changed or been superseded. I think Gentoo was a better idea back then, when things were still a little simpler in a lot of ways.
I tried it for fun a few months ago, but gave up because it took too much time to look up everything I needed to configure. The installation was also more complicated, since there are now multiple branching paths depending on what you want your system to be. And, sadly, it felt like compilation times (wall clock) have increased in the last 20 years. I quickly started to dread updating packages, but probably because I also felt bad having my little old laptop running at full blast for hours just to get the latest Librewolf.
I first ran into Gentoo in high school, about twenty years ago. I told an upperclassman that I wanted to learn Linux, and he told me to install Gentoo from stage1. His only advice was to print the handbook before starting, because I wasn't going to have a browser in my pocket once the install went wrong.
I had no idea what I was getting into. For almost two weeks, I basically didn't have a working home PC. Every day was the same: fight with the install at night, go to school the next morning, read docs on the school computers, ask him what I'd broken, then go home and try again.
At some point it clicked. By the end I had accidentally learned what a chroot was, how to build a kernel badly, why /etc/fstab mattered, and how easy it was to make a machine not boot. I also picked up Vim somewhere in that stretch, and never stopped.
I don't run Gentoo anymore, but I'm still grateful for those two weeks.