Yep, that was a truly terrible joke. Jokes aside though, I recently heard about a new package manager called Flatpak. It’s interesting because it aims to work on lots of different Linux distros, and also includes libraries in the packages, rather than using shared libraries.
Why not just use Snaps (from Ubuntu)
For many reasons, including:
- Well, Snaps only work on Ubuntu and (maybe) derivatives.
- Lots of people, including me, have been unhappy with Canonical’s ethical standpoint.
- To add more fuel to the fire, Snaps aren’t actually fully open source!
The third point might surprise you, but it is actually true. Note that plenty of the software in the snaps is open source, and that the snap format is open source, but the actual package manager’s store is in fact closed source and proprietary.
For lots of people this isn’t a problem, but it flies in the face of the Linux philosophy. Note all this is simply my humble opinion, and I don’t want to start a flame-war 😛
Moving on swiftly…
The good and bad about shared libraries
I’m not going to assume that everyone knows what a shared library is, so here goes:
Firstly, libraries are parts of applications that are outsourced. Often these library files are standard, and may be used by a lot of programs. Examples include the FFMpeg library, and the GNU C++ Standard Library (a core part of Linux).
On OS X, these libraries are traditionally bundled with every application that needs them. This is good because it means every program has the versions of the libraries that it expects. These are called static libraries.
On Linux, libraries are traditionally shared between applications, and this is primarily to save disk space. These are called shared libraries.
Flatpak and Snappy packages instead have static libraries, meaning that:
- Disk space usage is a little higher, but:
- Applications will perhaps run more reliably or with less tinkering, and:
- Updating to a new major release might be less fraught with danger.
In short, Flatpak works a bit more like the package management on OS X, at the expense of using a bit more disk space.
I’m going to deliberately leave this slightly open-ended. I think there’s a lot of good to be had with Flatpak, but, it may increase the size of Linux distros a lot, and that might also have performance implications. What do you think?