What is the difference between Appimages,Flatpacks and Snaps.

kc1di

Well-Known Member
Joined
May 14, 2021
Messages
2,488
Reaction score
2,412
Credits
18,134
With all the discussion of late about different packaging of software methods this article may be of use to some just coming to the discussion.

I will make one correction The author mistakenly says Mint uses snap package and it can but by defualt mint uses flatpacks.
Other than that it presents a simple explanation for each method.
I do not at this point personally choose one above the other. But will use whichever gives me the programs i need as simply as possible.
Remember to enjoy the journey and not get caught up in pointless arguments.
 


The applications that are downloaded and installed from the Debian repositories, what do they called? I can tell they are neither Appimages nor Flatpacks and Snaps
 
As far as I am aware, Debian still uses APT [advanced package tool] and dpkg [Debian packages] for its own repositories
 
So I'm guessing they have no particular name... I like those because they are small in size and they update automatically
 
Last edited:
Thanks to @kc1di for sharing the article in the original post. I read other articles, too (from web searches).

What seems to be missing from all of those articles is the recommended approach to maintain and upgrade the applications that you install from the various package managers.

Does each package manager operate independently, requiring the administrator to run multiple update checks (one for each package manager)? Does the built-in GUI update application know and recognize which package managers are installed and handle them appropriately in a single operation for the administrator? Are some integrated into the GUI tool and others not?

Can I assume that the GUI and "apt update, apt upgrade" or "dnf upgrade" work the same as each other regarding package managers?

Am I missing something obvious?
 
Thanks to @kc1di for sharing the article in the original post. I read other articles, too (from web searches).

What seems to be missing from all of those articles is the recommended approach to maintain and upgrade the applications that you install from the various package managers.

Does each package manager operate independently, requiring the administrator to run multiple update checks (one for each package manager)? Does the built-in GUI update application know and recognize which package managers are installed and handle them appropriately in a single operation for the administrator? Are some integrated into the GUI tool and others not?

Can I assume that the GUI and "apt update, apt upgrade" or "dnf upgrade" work the same as each other regarding package managers?

Am I missing something obvious?
I've wondered the same thing about updating packages. I didn't think apt update would update Snaps but I could be wrong.
 
Well I'm no expert but from what I've read snaps are upgraded automatically behind the scene. I'm not sure about Flatpacks. Appimages are pretty static if a updated one come along you just delete the old one and use the new one.
 
Over at Peppermint we get this question a lot since we generally leave it up the user to decide.
One way to approach this is:

Things that need a platform to work:
(in other words in order to use them you need to have their tools installed)

snaps - you can not use them if you do not have the snap tools installed first. Generally most Ubuntu systems will ship with it.
snaps is dependent on systemd, if you have devuan, gentoo or any other distro that does not use systemd snaps will not work,
snaps is a container or (box) that has all the stuff the application needs to run, and can be updated directly by the developer, you are depending on the the snap store if you install the snap application that way(most Ubuntu distros use the snap store anyway). much in the same way an Android phone is using the Google store for its apps and updates.

flatpaks - same thing you cannot use them if you do not have the flatpak tools installed, flatpak is not dependent on systemd it can run on any init (sysv, runit etc...) system distro. The application is a container or (box) that has all the stuff the application needs just in a different way than snaps but generally the same idea. They can be updated as well, you can be dependent on the flathub store or you can manage them yourself.

Things that don't need any platform installed to use them:
AppImages
- are just that it is a snapshot in time of an application it is a container that has the stuff an application needs, but its not really updated, you will need to go get newer versions as you are notified about them. It is not really installed rather it's an executable that just runs on anything.

Then finally there are the system packaging:
.deb, rpm, arch uses pacman (with make) for binary installs
These are not in a container or (box) they actually are installed on your computer natively,

They all have their pros and cons and preference is always your choice.
I will say they all do not communicate with each other. LOL
for instance if you install Firefox with snap and Flatpak and with the system packaging method
You will have three separate applications that don't know they exist.... not saying that is a bad thing but it is a scenario that exist.

My personal view as a developer / maintainer of applications even in the pip world.
The nice painful thing about the system packages they have a really stringent process to get your application in their repositories Meaning they have rules and people look at your code....in a way forcing you to make sure your stuff is snuff....

I can't say that is the same for FlatPak Snap or Appimage because I don't do anything in that area
But I do build pip packages and there is no process at all to publish packages in the pip eco system
is that a good or bad thing....its up to the user of the application to decide, but for me because I see that side of it I prefer the system packages.

None the less I hope this help
 
Last edited:

Members online


Top