So @Goalkeeper told me to make a post, so here I am detailing how I went from WIndows to an almost full Gentoo ecosystem, and how I’ve been using Linux full time for a couple years at this point.
I started off, like many of you, believing that WIndows was the only option. It wasn’t until my first computer science classes at college that I saw my first Linux desktop. Of course, it was Ubuntu. As I started to code more and more, I needed to compile my code projects more and more so I started dual-booting Ubuntu on my laptop then quickly jumped with both feet in and wiped the windows partition.
Like many of you, this began my ever-long distro-hopping phase. It’s so easy and (gratis) free so why not? I installed all kinds of distros (including Arch, btw) and even some BSDs on my old trusty dell crapbook and was loving it. But, I needed a home. I eventually settled on Fedora because my goal was to work with Linux full time as a career, so why not get familiar with the RHEL ecosystem. The only thing is, Fedora wasn’t quite new enough for me. I like shiny, and I like new. As soon as the newest Fedora release came out, I would have to install it that day. Because I felt like I had to be this elite LInux Master . So then I moved on to Fedora Rawhide.
Bleeding edge causes you to bleed. It’s a fact of life. As I got newer kernel drivers and quicker vim updates, I also got more and more bugs. Like a lot more. I reported them as they came out but my laptop quickly became unusable for me. I probably made things worse by being so aggressively new, but oh well. At some point along my Fedora career, I installed it on my desktop as well, and it faired better than my laptop, but it also quickly became filled with junk. Eventually, I got to the point of needing to wipe the OS. Specifically, I was having a lot of issues with the radeon
driver and couldn’t get amdgpu
to install. This was a very sad point in my career, but I thought, why not something new? There was still one distro that I had yet to install. The dreaded Gentoo.
Now, I’ve heard the horror stories. I’ve heard about how nothing works and you have to do everything manually and blah blah blah. I didn’t care. I already had a non-working PC so what’s there to lose? So I gingerly downloaded the live Gentoo CD (it’s not an installer, its just another full Gentoo system), then I followed the Gentoo Handbook, and then my PC worked. It was really a painless install. I remember how much trouble I had figuring out how to wipe my original WIndows partition while keeping the pristine Ubutnu partition (granted, I learned a lot between those times). But I was suprised at the fact that I could install Gentoo in a couple hours when everybody said it would take days. Then I realized how minimal my install was. I think I had the kernel, bash, grub, and OpenRC (becuase SystemD is stoopid), that’s it. I had to install a DE, but before I could do that I had to set my profile, but before that I had to understand the USE flags and then I had to actually compile everything. The process took me a couple of weeks to get a full, stable DE with steam, the latest AMD drivers, etc. Again, it probably won’t take you this long, but I made a lot of mistakes along the way. I really struggled installing packages and figuring out the dependencies and what USE flags to use, but eventually, I started understanding things little by little. It was a struggle, it was a growing process, but I eventually got to the point where I felt in control of my system, not the other way around. And that’s the biggest draw to Gentoo for me. I have such fine grain control like I’ve never seen in another distro. Like let’s say you want to install Dolphin to play the latest games, but you know that you don’t have a bluetooth card. If you’re on Fedora, oh well, you gotta have bluetooth support baked in because it’s a binary package. But with Gentoo, all you need to do is echo "games-emulation/dolphin -bluetooth" >> /etc/portage/package.use/dolphin
and then whenever you compile dolphin, it won’t even bother with bluetooth, resulting in a smaller file size. I know this is a trivial example, but it stil shows how flexible the Portage system is for Gentoo. You can also specify global USE flags in the /etc/portage/make.conf
to accomplish the same thing but on a global level (i.e. specifiing -X
for a headless server).
Speaking of servers, that was my next build. I had a FreeNas server running Emby, MineOS, etc. but I wanted dedicated front-end and back-end servers. So I built a small Ryzen virtualization server and installed Gentoo on it. This time, the entire system only took about a day. Part of the reason for that is that I started developing my own tooling for managing a Gentoo system. I wrote a small bash script to tell me what all the flags mean without having to open a browser, as well as using distcc
to speed up compilation by leveraging multiple computers.
And on that note, people love to bash on how Gentoo makes you compile everything from source, but honestly, most things just work and typing sudo emerge vim
isn’t any harder than sudo apt install vim
. You just have to wait longer after typing the command but that’s about it. You can even set load limits and such so you can compile in the background while you continue to browse the interwebz or whatever you kids do nowadays.
My final build is a Ryzen APU inside of a PS3 case. It’s capable of running steam, as well a bunch of emulators. I also managed to sync the ROMs between that computer and my desktop so I can just pickup where I left off by running SyncThing on my server. I originally installed Gentoo on this machine as well, but it led to some disappointing support for some steam games. So while most people settle for windoze because of gaming, I settled for Ubuntu for gaming. I also want to be able to take this thing to LAN parties and stuff so probably better to have a binary-based package manager instead anyway (although you can make Gentoo install binary packages only with the right emerge
flags).
TL;DR: Gentoo Desktop (named behemoth
because its in a big case), Gentoo Virtualizaton Server (named hydra0
, plan on adding more later), FreeNas Storage Server (name leviathan
, idk, it’s cool and it fits), Ubuntu (light) Gaming PC in PS3 (non-pejoratively named gaystation3
)