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!
I’ve always liked Zypper (and if I remember correctly, DNF was also fine), purely because it feels sane in everything it does.
We love to make a religion out of them, but a package manager is ultimately just a secondary tool. It installs other tools, which are what you’re actually interested in using.
So, I shouldn’t need to learn a scramble of letters to achieve that. I shouldn’t need to think about refreshing the repository listing. The less I need to worry about instructing the package manager, the better.Over the summer Zypper got a huge speed upgrade after decades of being one of the slowest package managers, and while Hayden James did give Zypper “the best score” (not really, (except if you assume they all got 5 in ecosystem size) all of them got 17, except Pacman that got 16), it would’ve been nice of them to mention that as I’m sure lots of people probably still have this idea of Zypper being sluggish and taking forever.
In fact, seeing as how APT is limited on simultaneous downloads, I’d wager that Zypper is actually faster than APT now. Probably faster than Nala as well.Yes, I was fine with/accepted the “slowness” before (I love zypper) & one day just suddenly it just started “skipping” the download parts & it was a huge optimization :D.
Even niche distros like Slackware, Gentoo,
Ooof - I’m feeling old when these are considered “niche” distros…
Well, Slackware was a main distro two or three decades ago. I give you that. Il pretty sure that’s what I installed when I installed my first Linux mid/early 99’s.
Gentoo has always been niche.
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.)
I prefer Flatpak
You can’t update your system files with flatpak.
No, you don’t.
Are you a mind reader?
Sometimes you are just right. No mind reading required.

bonus:

Interesting they gave apt a higher score for ecosystem than pacman. I feel like I have to add custom repos to Debian more often than I have to use the AUR on Arch
At least they mentioned Portage, though they did not do it justice.
I have been using Nix for a year now, and I am not looking back.
All regular package managers have a problem: Sometimes a system won’t work if a specific combination of packages is installed. To prevent this, package managers block those combinations. However, how does the package manager know which combination would break the system? It is tested beforehand, and a list of illegal combinations is maintained. However, this comes with a problem: How do you test every combination of packages? If a package manager tracks just 1000 packages, there are 2^1000 possible combinations to evaluate. This means that when a package manager becomes more popular, and more packages get added, relatively fewer combinations get tested, therefore increasing the chance someone breaks his system by installing a unique combination of packages, that wasn’t evaluated and apparently breaks the system. In other words: Package managers have a flaw that causes your system to break if the package manager becomes too popular. The common solution is to create a new package manager from scratch that does exactly the same thing as the old one, but isn’t popular yet, and therefore works. However, since it works, it becomes more popular, causing it to no longer work.
Nix is different. It is designed from the bottom up that every combination of packages is possible. It is impossible that one package breaks another. This creates some other advantages as well: there is no evaluation to see whether packages break other packages, allowing maintainers to add more packages to the repository. The result: even though it is not even close to the most used package manager, it is the one with the most packages in its repository.
Yes, there are problems. The biggest is that there is no easy mode yet. But that can be implemented later. For now I see Nix (or something similar like Guix) to be the future of package managers.
Sucks that nix has gone fash-mode though
Also most users don’t even have to use a package manager directly, as there are GUI frontends that manages all of this with mouse clicks. In that case, the underlying package manager doesn’t even matter, only the repositories you access to, do. I use easy to remember aliases and when I need some more features, i just look them up quickly. That does all the job I need for the most part.
KDE’s Discover is pretty magical. In Plasma 6, you don’t even need to install a bunch of separate plugins for it. Except I think they still make you sign off on Flathub (but give you instructions on how to do it)
Discover is probably the worst app in the entire KDE suite. It’s the only aspect of the Linux desktop that frustrates me, and I’m nearing 10 years of full time Linux desktop usage.
Oh, you accidentally opened Discover? Now you gotta sit and twiddle your thumbs while it updates/downloads a bunch of stuff very slowly with no way to interrupt it. It also locks the system package manager, so you literally cannot do anything else package management related until Discover slowly decides to finish doing something you never asked it to do.
Huh. I cannot personally relate to anything you’ve said there. Maybe we’re using different versions? The only issue I’ve had with package managers (aside from Flatpak file access, snap… just everything to do with snaps, and Pacman acting like it’s never heard of any of my mirrors if I haven’t updated in a couple of weeks, and official Nvidia drivers breaking my xorg.conf in half) is wiping out my entire desktop suite through Synaptic back in the day (entirely my own fault).
I suppose there are worse ways to learn to read the “these packages will be removed section”.I also don’t like how seemingly some parts of KDE like themes and widgets don’t seem to update through the terminal during a normal system update, you have to remember to open Discover once every few weeks and update them all separately.
But Discover on an Arch based system (EndeavourOS) isn’t that great. It only supports Flatpak, not the system packages.
Huh? Well… I do prefer updating via the command line. I guess what I was seeing in Discover was just Flatpaks and stuff.
IIRC, it can work with pacman using
packagekit-qt, but it’s not recommended.
Who are ‘most users’?
I don’t understand what you mean. What’s not understandable about “most users”?
I don’t know these linux people that don’t use package managers. So I asked.
I don’t know what exactly you want to know actually. It’s a generic wording / term. I’m not talking about a specific user group or something like that. I’m just saying, “people” do not HAVE to use a commandline package manager, if the system is configured to use a GUI manager for the packages.
In example SteamOS on the Steam Deck is configured in a way the user never need to use the terminal. There is the gaming mode, without a desktop and a click updates the system. And in desktop mode there is Discover pre-configured with Flathub for Flatpaks. Users don’t have to use the terminal to install new applications or update them. Just as an example. I think openSUSE also has some GUI for that and doesn’t Linux Mint have such a GUI too? Manjaro comes with their Pamac graphical tool.
Ok, I can see that in SteamOS, users that don’t directly interact with a package manager. That seems likely.
I would say that ‘most users’ of just about any linux distro know all about command line package managers.
So, my ‘most users’ and your ‘most users’ don’t seem to be the same people.I said “most users” in the sense of “nobody has to” and refer to everyone, including you and me. We don’t have to use the commandline to update package managers, if we use a GUI for it. I didn’t mean a specific number of people do or don’t.
Well, that’s interesting. I guess linux really is going more mainstream, if that’s the more common user experience. The users I know are mostly professionals that enjoy tinkering under the hood. Thanks for your perspective, stranger.
I like pacman. Cachy here.
They mentioned YUM just long enough to shit on it. I’ve never had a reason to switch to DNF. Fukit. YUM works.
Nix, portage?
There’s a section at the end where they’re mentioned.












