All three projects look promising, and of course I have already read many of the comparisons here on reddit and elsewhere. I understand that while some of their goals overlap, each one tackles different problems. Still, I am unsure which package format suits my requirements best:
- custom repositories: I like Canonical's Snapcraft store very much, the same applies to Flathub and AppImageHub. My focus is not on prohibiting app installations or hiding apps from other repositories. But as a systems administrator for my company I would like to offer to our users a set of applications approved, tested, and supported by their IT.
- custom update schedules: While new application versions might be released by the developers, I would like to have control over when updates are made available to our users.
- cross-distribution packages: Should we decide for whatever reason to switch from one distribution to another, our users should be able to install the same packages again regardless of the underlying base system.
- availability: Packaging is in my opinion the developers' responsibility. While I am fine with converting existing binaries from one package format to another (because developers have better things to do than supporting five different formats), compiling and managing build systems is out of the question.
Snap, Flatpak, and AppImage have their advantages and disadvantages:
- Snaps: Impressive number of packages. While snaps from other sources than Snapcraft can be installed locally, custom repositories are not supported and will not be supported in the foreseeable future. Also, as far as I know, snapd updates snaps whenever updates are available.
- AppImages: They seem easy to "install" and use, but compared to Snapcraft and Flathub, AppImageHub lists fewer applications. This may be an indicator that there are fewer AppImages overall. In contrast to Flatpak and Snap, where applications are built against a maintained runtime and share libraries, AppImages have to maintain their dependencies themselves and can include many redundant libraries.
- Flatpaks: I think, today it is more likely to see a Flatpak than an AppImage of an application. Apparently, Flatpaks receive automatic updates like snaps do. Since Flatpak lets me create my own repository, I guess that Flatpaks are only updated when a new package is available from the repository? Or is update information included in the package itself, and the package will be updated as soon as the developers release a new version? And can automatic updates for Flatpaks generally be turned off on the client? Also, I am missing detailed documentation on how to create a new repository; it is handled with a few sentences and links to previous sections.
I like Snap for the vast amount of available applications, AppImage for its simplicity, and Flatpak for offering a little bit more control than Snap. I dislike the lack of control over Snaps, doubt the scalability of AppImages, and struggle to see how to utilize Flatpak.
Containment/isolation/sandboxing is another topic and brings its own set of advantages and problems.
I would love to read your opinions (or corrections: I might very well have misunderstood some of the projects' concepts)!
[link] [comments] ...