Standardise Removal of AppImage


#1

I’ve just removed the Jetbrains Toolbox. I Think AppImage apps should have a standard uninstaller / software removal process to ensure our systems are not littered with dependencies not managed by the OS when vendors do not publish uninstallers with their apps


#2

The Jetbrains Toolbox is an AppImage, which is a single file that contains the application and everything it needs to run that is not part of the base system. When you remove this one file, then you have effectively “uninstalled” the application (but not the data the application has created and/or downloaded).

This is like when you move an .app bundle to the Trash in macOS.

What else would you like to see?


#3

I was specifically referring to the additional data. There must be a way to force an application to take responsibility for it’s stuff.

Also on Linux it seems to be more than one file or folder. I had to delete some ~/.local/usr/share/application entries as well as the application icons. I felt like this more involved than it needed to be process reminded me of old-school windows 98 uninstalls of unruly applications and for non-power users this could be a big problem for users.

I am of course open to alternatives, others having opinions that contradict my own.


#4

You are right, an automatic removal of the desktop integration would be neat and should be written.


#5

I have also had slight concerns about what happens to the desktop integration and file association when an AppImage is deleted. Maybe accepting the offer to install the desktop file should create a new ‘uninstaller’ AppImage next to the original AppImage which could be used to clean up when the original AppImage is removed.


#6

Yes, it could work like this: When the desktop file is installed, it has as its Exec= key not the AppImage itself, but a tiny wrapper script that gets extracted to somewhere in $HOME. When executed, this wrapper script launches the AppImage. If the AppImage is no longer there, it removes the icon and the .desktop file and itself.

Who wants to write it?


#7

I’d need to know more about how the AppImage is built, If someone can direct me to the install script or install builder or bundler, then I should be able to do something


#8

Cool, please have a look at the bash script called ‘desktopintegration’ in the GitHub project probonopd/AppImageKit.

Note that when run inside an AppImage, the environment variables $APPIMAGE and $APPDIR are set.


#9

can you create uninstaller appimage. to uninstall, user must delete file on ~/.local/usr/share/applications. IS IT NOT WEIRD/STRANGE? CAN YOU HELP ME?


#10

An AppImage is not “installed” and hence does not need to be “uninstalled”. It’s just a single AppImage file that you can delete.

However, desktop integration (icons, menu entries and such) needs to be “installed” (thanks to how the Linux desktops work); if you use tools like the optional appimaged daemon (or the AppImageLauncher tool) then they will automatically add and remove desktop integration for you, so that you don’t need to do anything manually.

The only problem is AppImages that ask the user, on first launch, whether to add the application to the menu (using a *.wrapper bash script). We don’t recommend this anymore, as in this case, the user has to delete the menu/icon etc. files manually.