Something that took a bit of getting used to this week as I made my full-speed-ahead journey into Linux was understanding just how many package managers there are. I’ve been used to a two-horse race in terms of package management split roughly between “rpm distros” like RedHat or SUSE and “apt/deb distros” that are more or less derivatives of the Debian family tree like Ubuntu and Mint. And yes, Arch fans, there’s pacman too. But let’s not pretend it’s not miles behind the other two in terms of adoption.
What I hadn’t come to realise was that there was another package manager ‘war’ brewing, this time for applications that were targeted not just at the OS layer, but at graphical desktop apps. This time between the Canonical-backed “Snap” package system, and the open community based efforts of Flatpak. In many ways, that distinction is the main source of angst between the two — namely that many Flatpak proponents don’t love the idea of a system that has too much influence from a single corporate entity.
For the most part Ubuntu and derivative distributions support Snap natively. It works well in those environments and has been ported to other flavours of Linux and is for the most part available to those who want it. And there are definitely some that don’t. The Linux Mint project has specifically spoken out against Snap citing a perceived conflict of interest on the part of Canonical. Flatpak is the preferred package manager on both Mint and LMDE it’s Debian-based sibling.
From a user perspective Flatpak (with the corresponding flathub backend installed) and Snap provide an easy to search set of packages to find many of your favourite apps. Often apps exist in both libraries, so if you have a preference you need to be aware of which source is being shown.
I chose to use mostly a mix Flatpak packages and just directly downloading installers from their source websites. This seemed to be the best way to get more up-to-date software. The direct downloads often sidestep the need for a package manager as they handle doing their own updates (Discord, and VS Code) for example. So the package manager war has settled down, for me at least. Time to stop worrying about the nitty gritty details of how the system is maintained, and get on with the business of making things.
