The Next Big Linux Fight is Flatpak vs. Snaps
ONE OF THE BIGGEST PROBLEMS with Linux has been the duel of competing standards. The battle between Flatpak and Snaps wants to take the fight between package standards beyond the distro. Back in November of 2016, the Fedora project came out with version 2
The problem is, Canonical said the same thing with Snaps when it released Ubuntu 16.04 in April 2016. So what gives? First, it helps to know what exactly these new formats look to accomplish. The “purest” way to get software on a Linux system is to compile it from source. But compiling from source is a huge pain in the butt, and takes time. Which is why most people prefer to download packages.
Packages have all of the program’s files in a single file, while a package manager reads, extracts, and performs any set-up operations that are needed (such as installing dependencies first). Not everyone agrees with where the files should go, which is why each Linux distribution does things differently. (The package manager and the choice of what packages to include are probably the biggest things that set one distribution apart from another.) This disagreement over locations and formats resulted in the myriad of distributions we see today. It has also created a lot of extra work.
When an upstream project—such as VLC, for example—pushes a release, the developer has to determine how it wants to distribute its binaries. If a developer releases a .deb for Debian and Ubuntu, someone else has to maintain the packages for Fedora, Arch, and others. There is an army of package maintainers who spend their days and nights repackaging software to fit neatly into a distribution’s structure.
That’s the problem Flatpak and Snap want to solve, and they do it by siloing applications in their own little bubbles of reality. The idea of sandboxing is nothing new, and isn’t too far off from Docker, which is built to containerize programs for servers. Flatpak and Snaps distribute runtimes for their programs to run on. These runtimes allow a program to be written for a particular version of a library, so that when the system is updated, the program still has access to the library it was designed for. This makes Snaps and Flatpak all-in-one solutions for desktop software distribution. Which is why it’s going to be interesting to see which format wins.
Right now, Ubuntu has more software available as Snaps, but people are concerned about Canonical’s Contributor License Agreement that developers and contributors have to sign. Fedora claims that Flatpaks are more open, and have better security (as long as the user is running Wayland instead of X). The problem is, there isn’t a lot of software released as Flatpaks yet, with the notable exception of programs that come with the GNOME desktop environment (such as Evolution and Gedit). To add to the fun, Ubuntu is now using GNOME’s Software application (which has built-in support for Flatpak) instead of its own Software Center application.
The sandboxing of desktop apps has a lot of potential for security and distribution, but first the community has to agree on a universal standard, or this exercise ends where it began: with different formats everywhere, and a lot of wasted time on repacking packages. Alex Campbell is a Linux geek who enjoys learning about computer security.
Package maintainers spend their days and nights repackaging software to fit into a distribution’s structure.