Tried looking into this a bit, but I’m still confused. It used to be (and still is for many distros), that each distro has it’s own software center, and many even share from the same repos (Ubuntu and derivatives, for example). But now the Snap store has come along, and Flatpack.
Support for these are being toted as new features for some of the latest mainstream distro releases. What I’m confused about though is;
-Are these new software distribution platforms eventually going to replace the existing software centers?
-What makes Snap/Flatpack so much better than current software center platforms?
-Is the idea to create a unified software distribution platform that is widely adopted across all distros?
-What’s the difference/advantage/disadvantage between installing the same software/application through Snap, Flatpack, or the distro’s own software repos?
-Or am I missing the mark on all of this? lol
Hoping someone can shed some light on this. Thanks.
i came across this article a while ago. i don’t know that it has definitive answers and doesn’t address your software center question, but it helped me understand snap, flatpak and appimages a little better.
i thought i had read somewhere that mint preferred flatpak (found a couple of older articles) over snaps and found 3 packages in this list that seem to be for flatpak implementation along with a couple for snap. ubuntu, on the other hand, doesn’t list any flatpak packages, but does list snap along with deb (apt) in its package manager category.
i had read in a few threads on reddit about people who were frustrated with snaps on ubuntu because they have started to load them by default for regular system programs. some of the complaints were that they load slower and run more resource heavy. i have a recently created ubuntu 18.04 vm so i ran snap list to see what was being loaded as a snap. it turns out gnome itself (along with system monitor, calculator and some others) are all snaps.
Thanks again, @01101111, that article you shared answered pretty much most of my questions. The chart near the end of the page is a nice summary of how they compare and what the goals are with each implementation/concept.
Seems like the larger/main goal of both Snap and Flatpak is to achieve parity among apps between distros, and not have to rely on each distro adding, updating and maintaining their own versions of apps for each distro.
To try to answer all your questions and for the benefit of anyone else who comes accross this thread in the future:
Q- Are these new software distribution platforms eventually going to replace the existing software centers?
A* Probably. Each distribution will, as always, do their thing. But for some the aim will be to use Universal Packages to streamline package management and reduce the work of maintaining multiple repos or package formats.
Q- What makes Snap/Flatpack so much better than current software center platforms?
A* Everything needed for the app to run is in tha single package including dependencies. This is beneficial as it can solve issues of dependency depreciation or updates breaking things. Having said that, some distros (like Ubuntu) are working Snaps into the Software Center alongside DEBs for a seamless experience.
Q- Is the idea to create a unified software distribution platform that is widely adopted across all distros?
A* Yes, but like before, each distro will do what they think is best.
Q- What’s the difference/advantage/disadvantage between installing the same software/application through Snap, Flatpack, or the distro’s own software repos?
A* Universal Packages (Snaps, Flatpaks and Appimages) have everything you need in a single bundle. There are advantages and disadvantages between the three but that is trivial in my opinion unless you care (read the linked article above for that). The overall advantage is that a single build can run on multiple distros saving developer time and distro resources. Installing from TAR, DEB or RPM etc needs the packages to be built for your specific distribution (sometimes even for each revision as well) and will need dependencies to be resolved and installed. This can be hit-and-miss sometimes.
As an example, a piece of software may require 5 DEB builds to cover the 2 recent releases of Debian and the last few releases of Ubuntu to cover the varying dependency descrepancies between them. A single Snap build will work on them all.
Another example is if you’re on Ubuntu with Gnome (using GTK for most things) and you want to install a KDE app - from the repos you will install a DEB and a whole bunch of KDE dependencies that may take over your system (once the KDE Terminal app replaced my pre-installed one) but using a Universal Package keeps the KDE cruft in check and the system untouched.