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.My desktop is Fedora and I have a file server running Debian. I was doing updates to the Debian box through ssh and it took me way to long to figure out why dnf wasn’t working.

bonus:

App images, love the fact that they exist thou sometimes graphically jarring. Sure… ever only used them for two different applications. Both pretty niche. And not available in my distro repo or flathub. Not advocating for it to become something universal,or anything but they seem pretty distro agnostic. Which I’m guessing is easier to maintain? Or not? Not a developer.
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.
At least they mentioned Portage, though they did not do it justice.
Pacman is the best for the simple fact that it’s simple. APT, DNF etc get into the weeds with complex scripts trying to update databases and other nonsense that has caused apt/dpkg to obliterate systems for me too often (over like 10 years)
but pacman is about as close as possible to “unzip in place and go home” I’ve never had the actual pacman itself break a system. And the only broken update I’ve had is the stupid grub one which I solved by switching to systemdboot. On top of that even IF you somehow obliterated an arch system it’s trivial to chroot in, use a statically built pacman, then reinstall all system packages with a single command.
I unironically use arch in critical production systems as i genuinely find it to be more reliable. Slap on some filesystem snapshots as a just in case for any bugs from updates (never had to use) and I have a system that is so much easier to use and i feel more confident doing updates
Pacman has fucked me so many times, I will likely never use Arch again. rpm-ostree has always had my back.
Oh I didn’t know ostree was used by rpm, I thought it was made from scratch from the flatpak project just like bwrap is.
I’m very choosy with AUR. I know people hail it as the holy grail but the lack of vetting makes it “delicate”.
This is, in the best of cases, what’s being packaged hasn’t been properly tested. In the worst, you really need to read the package file and understand it enough to confirm you can trust the sources or risk being surprised.
Sounds more likely that AUR fucked you. Which isn’t pacman. I’ve often found people who hate “pacman” usually just hosed their system with the AUR