If you’ve hopped between Linux distributions as much as I have, you know that each major family of distros introduces you to a different package manager. At first, it can feel a bit daunting (apt on Debian/Ubuntu, dnf on RHEL/Fedora, pacman on Arch, and zypper on openSUSE), but these tools all serve the same purpose of installing and updating software.
After using Linux for years (across everything from Debian to Arch-based systems), I’ve grown comfortable with all of them. Even niche distros like Slackware, Gentoo, and Void. In this post, I’ll break down the major package managers, how they differ, and what it’s like to use each one. We’ll also touch on the universal package formats (Snap and Flatpak) that aim to work across distributions, and lastly mention a few niche package management systems. Let’s dive in!
Yeah - Slackware back in the late 90s early 2K’s wasn’t as niche… Remember the Infomagic CD sets?
Gentoo got traction for a while when they made it easier to install, instead of having to go from Stage 0. Of course, I installed it from Stage 0 since I wanted to know more about the tool chain and how these systems were built – but I wasn’t masochistic enough to try to install LFS.
I had Gentoo as primary for 6 months. 6 months of an unusable computer always compiling.
I did a bit of LFS and while I didn’t get to a full desktop, it helped a lot.
Hmm - my Gentoo install was usable, but I did get tired of all the compiling for updates. Still kind of get annoyed with it now when I have to install source packages from the AUR.
I read a lot of the LFS manual, that’s what made me decide to give Gentoo a go. Seemed like an slightly easier route while still working through a lot of the build process.
I mean…mine was theoretically usable. But practically, it was compiling all the time.
I really don’t understand how can people use it. I really tried.
I think it’s something that you have to get used to… While it’s compiling stuff, you can actually be doing other things on your system. The trick was to make sure your configuration balanced your systems resources so you didn’t get bottlenecks. (For example: putting your home drive on a separate physical drive to reduce issues with writes.)