In addition to snaps and flatpaks, another universal, cross-distro package format is AppImage. Like the others, this also bundles all the runtime libraries, so they are vastly larger than a native package.
Most AppImages are only available in 64-bit format, and using them involves the following steps:
- Download the AppImage that you want
- Make it executable (right-click it and choose Properties/Permissions)
- Left-click it to launch.
Many Appimages will ask to add themselves to the menu at this time, but if they don’t, they can also be added later with the menu editor.
It is also possible to “debianize” an Appimage for the MX repository if we can’t build it natively, but usually we look to see if it adds some tweaks for the program that only our packaging can provide. In that case, we will add “-appimage” to the package name and have it remove the older, native version.
Here is a good approach from MX user MisterZ:
What I do is to create a folder called “CoolApps” in my HOME folder renaming it to make it invisible (.CoolApps). This contains folders of all my AppImages (make sure you right-click the app for permissions to make it executable!). These folders contain the image and an icon (png) for the app (32x32px, which I create myself). Then create a launcher using a basic text editor like this:
Comment=Quick video edits
Then save your text file (in the example for Avidemux) as Avidemux.desktop and place it in /home/(user)/.local/share/applications/ … it will show up after re-login in your specified menu entry … easy-peasy. (I keep a copy of this text file as a template for creating launchers for other images.)
If a new version of an AppImage becomes available then simply replace the old one in your specific .CoolApps folder, make it executable, then alter the “Exec=” in your launcher (/home/(user)/.local/share/applications/). If you don’t like the App or find it buggy, simply delete everything you created and it’s gone (delete the .config entry for the App in question as well)!
Sometimes appimages appear not to work. This may be due to packages that are not included because they have been *excluded* by the developers. The changing list of what is being excluded can be found here:
If you can determine the missing expected library, it will probably be something easily installable from Debian Stretch repository.