[SOLVED] Why do AppImage, Snappy, and Flatpak exist redundantly?
Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Why do AppImage, Snappy, and Flatpak exist redundantly?
Hello,
I've recently discovered the topic of distro-independent apps and their relevant implementations/formats.
Curios as to their purpose, I find out that they were intended to provide for the means to have any app developed and run on any Linux machine.
Of those that I'm aware of and seem to be popular in use, the three are AppImages, Snaps, and Flatpaks.
My question now is: if AppImages was already doing that before Ubuntu and Red Hat's initiatives, why didn't they simply build on what already existed with AppImage?
The three contenders differ in coverage of features and requirements, but overall, isn't their purpose the same? To eliminate hard dependencies on distros among other things?
In my mind, if more than one way to do the same thing such as this exists, then the problem isn't really being fixed. It's just yet again adding another way to do what's already being done.
According to my research, Ubuntu came out with snaps after AppImages and then Red Hat's guy came out with Flatpak later. Why?
I then see people say that Ubuntu's snap store (or something related) was sketchy in some regards to licensing?
The mind boggles as to why something so simple had to become so—yet again—complicated.
My best guess is that different developers had different ideas as to how to make this happen. One person or team did it, then another though it could be done better.
More seriously, most problems have more than one solution because more than one person or group had more than one itch to scratch. There is Microsoft Office, OpenOffice, LibreOffice; the latter two with largely overlapping feature sets. There is PostgreSQL, MySQL, MariaDB (the latter two almost identical). There is RHEL, SLES, Ubuntu, Debian, Devuan, ArchLinux, Gentoo, and a few hundred others. Apache, Nginx, Lighttpd, .... you name it.
Some of us wonder why Appimage, Snappy, and Flatpack exist at all — unless you actually like bloat and added complication, in which case you could always install Windows.
The mind boggles as to why something so simple had to become so—yet again—complicated.
problem is that (any of those three) might look simple and user-friendly, but underneath the surface they're anything but.
a lot of bloat, additional system resources etc.
something breaks in this fragile structure, the newbie is much worse off than with a regular oh-so-non-universal package management install.
Some of us wonder why Appimage, Snappy, and Flatpack exist at all — unless you actually like bloat and added complication, in which case you could always install Windows.
I can agree to an extent but I also understand their intent. I feel that perhaps these attempts on their own have introduced a different way to do what's already working and in a manner that isn't always going to make sense for everyone.
I personally value the performance-drop in lieu of the container/sandbox methodology but I can also see how not everyone would want/need that.
In an ideal world, I feel that it would solely be one kind of working implementation instead of what we see today; but I suppose in some sense, that would resemble Microsoft too much.
Some of us wonder why Appimage, Snappy, and Flatpack exist at all
One of the challenges of implementing Linux across a large organization where there are many different people with different computing needs (thus requiring different distros), is packaging. Some tools to help with this problem is AppImage, FlakPak, Snaps, and Containers...
According to Linus Torvalds, alot of distros get application binary package distribution wrong cause alot of distros only allow shared libaries, and in that case it's very hard to get your binary application in, especally across mutiple distros. So that means the app programmer has to write many different binaries for it to work for each distro. And solving this issue is really hard, but he said you can solve it by simply linking everything staticly, and putting your own file system there because you can't rely on the filesystem the libaries give, and you can't rely on all the paths that the libaries depend on (this is not Linux specific, for example in the Windows and OSX binaries, packaging of applications is hard too because the different systems have different paths and different paths to icons, and things like that etc...) With that said I have no idea how AppImage, FlakPak, Snaps, etc do it, but these services are needed.
Last edited by young_jedi; 04-01-2019 at 10:29 PM.
Lots of standards try to become a de facto standard, but when you look under the surface it's really only suited to the goals of the people that made it.
Often the simplest design is going to be the most universal, because support for it is trivial to implement. If it requires a bunch of obscure libraries or special tricks that won't be supported everywhere-- you know it's not going to be a "standard" for long.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.