My Beginnings with Gentoo

Written By: Jake Bauer | Posted: 2020-06-16 | Last Updated: 2020-06-16

I’m not sure what possessed me to try out Gentoo, but here we are.

Gentoo is a source-based distribution where, any time you install a package, programs and their dependencies are compiled from their source code. One of the advantages to this is that you can decide (via USE flags in Gentoo) which components you would like to compile into that particular software. This is in comparison to binary-based distributions where usually all the functionality is compiled in. The most obvious disadvantage to this is that some programs, like Firefox or LibreOffice, take a long time to compile.

Gentoo also has you set up your entire Linux installation from scratch. You are dumped in a live shell environment and you must format your disks, create filesystems, download base utilities, and prepare your system manually including compiling the kernel. For those familiar with Arch Linux, it’s like Arch but… more.

I find the concept to be really cool considering I’ve spent my entire time with Linux using distributions like Ubuntu, Mint, Debian, and Fedora which do a lot of this hard work for you (I’ve installed Arch a handful of times, but never stuck with it). However, I definitely feel very out of my depth with all that there is to Gentoo.

I started by printing out the excellent Gentoo Handbook (came out to 23 pieces of paper, double sided, with 4 pages per side) and burning a minimal installation USB stick. With the help of the first part of this handbook, and after cleaning out my T420s’ vents so it would stop overheating while compiling the kernel, I was able to get a Gentoo system up and running in about 2-3 hours.

I used the easy options for most of the installation, sticking with mostly what the wiki told me to do and using genkernel to automatically compile my kernel as the plethora of options with a manual configuration felt quite daunting. For now, I just want to get used to the Gentoo ecosystem and didn’t want to risk breaking things by trying to get fancy my first time around.

I held my breath after issuing the reboot command from the installation environment and got incremental boosts of dopamine as I got through the GRUB menu, loading the kernel, watching OpenRC’s output scroll by, and finally reaching a login prompt. Setting up the general user account was easy and I chose to go with doas instead of sudo because I like the simplicity of it.

As of right now, I’m compiling the software necessary to get my desktop environment in order. It’s taken about 2 or so hours just to compile the bare minimum of X11 packages I need plus all of the other things that make up my desktop environment like compton, dunst, etc. While all that is compiling, I did a test startx which interestingly ignored my XINITRC variable and just launched the xinitrc found in /etc (I checked with the env command that the variable did exist in my environment). Starting it with startx .config/X11/xinitrc worked though, and I had my desktop environment up and running (albeit without all of the flash).

My first impressions of the distribution are overall positive, though I still feel very out of my depth. I’m going to have to do a lot of reading about the various Gentoo-specific tools, recommended USE flags, how emerge works, and then probably re-install a few times to get comfortable with the procedure. Regardless, I feel like I already know a lot more about how to put a Linux system together and I’m enjoying the challenge.

This is my forty-seventh post for the #100DaysToOffload challenge. You can learn more about this challenge over at https://100daystooffload.com.