appimaged does exactly that automatically for you.
see: https://streamable.com/dm575h
With that said I prefer AM, because it also adds the applications to PATH
, meaning you type yuzu
on the terminal and it launches yuzu as well.
appimaged does exactly that automatically for you.
see: https://streamable.com/dm575h
With that said I prefer AM, because it also adds the applications to PATH
, meaning you type yuzu
on the terminal and it launches yuzu as well.
Or even just Flatpak.
AM was started because flatpak sucks.
With flatpak devs can’t agree to use a common runtime, so the user ends up with a bunch of different runtimes and even EOL versions of the same runtime, making the storage usage 5x more than the appimage equivalent and this is much worse if you use nvidia which flatpak will download the entire nvidia driver again.
flatpak could not bother to fix the hardcoded ~/.var
directory, something that AM fixes by simply bind mounting the existing application config/data files to their respective places when sandboxing which yes it is able to sandbox appimages with aisap (bubblewrap).
flatpak threw the mess of handling conflicting applications to the user, so you have to type nonsense like flatpak run io.github.ungoogled_software.ungoogled_chromium
, AM just puts the app to PATH
like everyone else does, even snap doesn’t have this issue.
AppImage isn’t a good comparison for a lot of different reasons
Alright what does flatpak offer in this case?
Has performance issues 1
Has security issues even 1 2 3 and not to mention the whole bunch of flatpaks that use EOL runtimes which are even worse, not only for security, but also because that single flatpak ends up pulling an entire runtime for itself which makes even more bloated.
And is insanely bloated as you saw already.
I think enough people have summarised that on the internet by now.
Such as? but I likely know already what is going to be said, hopefully is none of the following:
“Depends on libfuse2” (not true since 2022 with the static appimage runtime, this also allows making appimages that work on musl systems, which several like ghostty, goverlay, Steam, gimp, cromite, citron already do)
“You need to build on an old distro and it is hard”, once again not true anymore since you can now bundle the glibc as well (and it is needed for appimages to work on musl systems).
“No wayland”, this is only true if you use linuxdeploy-qt to make the AppImage, the project has been abandoned already for several years and the only project I know that still uses it is qbittorrent-enhanced.
EDIT: And also hopefully you are aware that a lot of flatpaks are literary an AppImage shipped in a flatpak runtime, like:
https://github.com/flathub/dev.vencord.Vesktop/blob/master/dev.vencord.Vesktop.yml#L34-L46
https://github.com/flathub/com.ultimaker.cura/blob/master/com.ultimaker.cura.yml#L24-L44
https://github.com/flathub/xyz.armcord.ArmCord/blob/master/xyz.armcord.ArmCord.yml#L40-L43
https://github.com/flathub/chat.simplex.simplex/blob/master/chat.simplex.simplex.yml#L22-L31
https://github.com/flathub/menu.kando.Kando/blob/master/menu.kando.Kando.yml#L33-L40
So yeah AppImage isn’t ideal, lets ship it in a container anyway 😁
and through deduplication between different runtimes and runtime versions. There’s usually very little bloat, if any, especially if you use Flatpaks a lot,
~20 different GUI applications, flatpak ended up using 14 GiB of storage while the appimage equivalent used 3.2 GIB.
And note I was not able to find flatpaks for ghostty, goverlay, kdeconnect and a few other apps, meaning the actual bloat of flatpak is even higher.
Edit: And this is even worse if you are an nvidia user, flatpak will download the entire nvidia driver as well.
flatpak works by using bubblewrap which creates namespaces for the applications you use, essentially the root gets swapped for a fake root, this is how docker, podman, etc work.
This contradicts their own wiki. Type 2 AppImages do use libfuse2, which is the problem
appimagekit is not actively developed anymore. Development moved to AppImage/appimagetool and type2-runtime
EDIT: Also go-appimage which was the first one to use the static runtime in 2022.
So no, they do not need libfuse2 anymore. Stop saying that nonsense, Download the AppImage of Cemu or PCSX2 or Ryujinx and remove libfuse2 and see for yourself…
Even in the github thread you linked it is said that namespaces are enabled by default in the kernel nowadays
Yeah and ubuntu recently fucked it up with namespaces restrictions.
Docker, where another kernel, package manager etc. gets loaded.
Docker doesn’t load another kernel, no idea if it can either, flatpak is pretty much another package manager as well. By your own definition it is another distro.
However if you want to be taken serious in your criticism please inform yourself on what you’re criticize
they simply don’t fix the libfuse2 issue
Neither Flatpak nor Snap run “another distro inside”
The flatpak runtimes are huge and are another distro in practice, just check the contents of the gnome runtime and you will see it is another distro.
Flatpak also depends on namespaces which paranoid distros disable and cause issues. Which the person you responded to talked about it and you ignored all together lol
AppImage is meant to be updated using the embedded zsync info the runtime, that is the user should never have to open the app to update it.
The user needs to have something like AM, appimagelauncher or appimaged that is then able to parse the info and update the appimages using
appimageupdatetool
This method also provides delta updates, meaning it doesn’t download the entire app but only a diff, see this test with CPU-X where it downloaded 2.65 MiB to update the app: