appimages

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
appimages [21.02.2021 07:39] – [AppImageLauncher] Pascal Suterappimages [21.02.2021 08:54] – [AppImageLauncher] Pascal Suter
Line 1: Line 1:
 ====== AppImage ====== ====== AppImage ======
-an AppImage is a container for a single application. It is a single binary containing an entire application. It provides everything the application needs from the OS within the appimage itself, so it has no dependencies. Basically in a way similar to a docker container.  
  
-You can simply download any AppImage to your linux Machine, make it executable and run it. That's fantastic but there are some downsides compared to applications installed via your OS's packet manager: +an AppImage is a container for a single application. It is a single binary containing an entire application. It provides everything the application needs from the OS within the appimage itself, so it has no dependencies. Basically in a way similar to a docker container. 
 + 
 +You can simply download any AppImage to your linux Machine, make it executable and run it. That's fantastic but there are some downsides compared to applications installed via your OS's packet manager: 
   * You need to manually copy the app image somewhere useful   * You need to manually copy the app image somewhere useful
   * you need to manually integrate it into your desktop launcher   * you need to manually integrate it into your desktop launcher
   * you need to manually download and install updates of your appimage   * you need to manually download and install updates of your appimage
  
-So basically, using AppImage is like using windows XP, where you download shady setup exes and manually look for updates etc. So why bother? Well, the big upside of AppImages is what it brings to the developer: It makes it a lot simpler for a developer to provide a binary version of his application, because he does not have to familiarize himself with the various build systems of all those many linux distributions out there. He does not have rely on stone-age library versions, just to be sure his app will compile on an old RHEL or Debian as well to make sure he can package it for those distributions as well. He can simply write his application on his favorite Linux environment, compile it and package it and it will run on all other Linux variants and most versions right away. Docker does the same for services, Snap does almost exactly the same as AppImage but it provides a packet manager, security features etc.. That's better than AppImage, but it's also more complicated, because Snap is not broadly accepted by all Distributions yet, an app developer would only reach users of very few distributions yet. Because AppImage needs nothing, anybody can run it without installing an entire ecosystem first. +So basically, using AppImage is like using windows XP, where you download shady setup exes and manually look for updates etc. So why bother? Well, the big upside of AppImages is what it brings to the developer: It makes it a lot simpler for a developer to provide a binary version of his application, because he does not have to familiarize himself with the various build systems of all those many linux distributions out there. He does not have rely on stone-age library versions, just to be sure his app will compile on an old RHEL or Debian as well to make sure he can package it for those distributions as well. He can simply write his application on his favorite Linux environment, compile it and package it and it will run on all other Linux variants and most versions right away. Docker does the same for services, Snap does almost exactly the same as AppImage but it provides a packet manager, security features etc.. That's better than AppImage, but it's also more complicated, because Snap is not broadly accepted by all Distributions yet, an app developer would only reach users of very few distributions yet. Because AppImage needs nothing, anybody can run it without installing an entire ecosystem first.
  
-So in the end, AppImage is a workaround for an age old issue of Linux: that it is hard for a developer to supply distribution agnostic binaries. +So in the end, AppImage is a workaround for an age old issue of Linux: that it is hard for a developer to supply distribution agnostic binaries.
  
-I see more and more apps being supplied as app images only being available as an app image. This is okay as long as it's something you use occationally, but as some regularly used apps are being packed that way, we need a way to integrate app images easily into our desktop environment and to keep them updated as well. +I see more and more apps being supplied as app images only being available as an app image. This is okay as long as it's something you use occationally, but as some regularly used apps are being packed that way, we need a way to integrate app images easily into our desktop environment and to keep them updated as well.
  
 ===== App Image helper programs ===== ===== App Image helper programs =====
-Here are some helper programs i have found so far, that help to overcome the Windows XP feeling of AppImages: + 
 +Here are some helper programs i have found so far, that help to overcome the Windows XP feeling of AppImages:
  
 ==== Appimaged ==== ==== Appimaged ====
-[[https://github.com/probonopd/go-appimage/releases|appimaged]] is a tool provided by the AppImage people themselves which helps integrating app images into your desktop environment. It monitors your directories where you usualy store excutables (directories listed in your ''$PATH'' environment variable) and if it finds new AppImages, it adds them to your desktop launcher. It also removes apps that where removed from those directories.  
  
-what I don't like about it, it also searches your Downloads directory, to basically detect an app image as soon as its downloaded. This is of course very convenient, however, it makes your system a mess! I see my Downloads folder as a temporary storage for stuff I downloadit is the first folder i delete when i run out of diskspace, so not really the place where i want to keep ym AppImage files that i need every day+[[https://github.com/probonopd/go-appimage/releases|appimaged]] is a tool provided by the AppImage people themselves which helps integrating app images into your desktop environment. It monitors your directories where you usualy store excutables (directories listed in your ''$PATH'' environment variable) and if it finds new AppImages, it adds them to your desktop launcherIt also removes apps that where removed from those directories.
  
-Of course i can manually copy them to a different folder, but there we ware, need to open a file browser again and start to manage my appimages+what I don't like about it, it also searches your Downloads directory, to basically detect an app image as soon as its downloaded. This is of course very convenient, however, it makes your system mess! I see my Downloads folder as a temporary storage for stuff I download. it is the first folder i delete when i run out of diskspaceso not really the place where want to keep ym AppImage files that i need every day.
  
-also I think appimaged itself needs some attention, as in placing it somewhere on your system and then making sure it autostarts when you boot etc. +Of course i can manually copy them to a different folder, but there we ware, i need to open a file browser again and start to manage my appimages. 
 + 
 +also I think appimaged itself needs some attention, as in placing it somewhere on your system and then making sure it autostarts when you boot etc.
  
 ==== AppImageLauncher ==== ==== AppImageLauncher ====
-[[https://github.com/TheAssassin/AppImageLauncher|AppImageLauncher]] is another take on installing and integrating app images. It makes use uf the fact, that fresly downloaded files don't have the executable flag set. So when you double-click or "open" them, your OS is looking for an application to handle this type of files. AppImageLauncher will set it self up as the default handler for AppImages. Once it is started, it provides you with options to install the app image or run it only once. It will do the integration for you and store it to a reasonable path (''~/Applications'') for you. That's more like it :) Now we are at least at the level of a ''setup.exe'' from the old windows days :) + 
 +[[https://github.com/TheAssassin/AppImageLauncher|AppImageLauncher]] is another take on installing and integrating app images. It makes use uf the fact, that fresly downloaded files don't have the executable flag set. So when you double-click or "open" them, your OS is looking for an application to handle this type of files. AppImageLauncher will set it self up as the default handler for AppImages. Once it is started, it provides you with options to install the app image or run it only once. It will do the integration for you and store it to a reasonable path (''~/Applications'') for you. That's more like it :) Now we are at least at the level of a ''setup.exe'' from the old windows days :)
  
 covneiently, AppImageLauncher itself comes packaged for many distributions, because it needs to mess with your distribution's specific file paths etc. anyway. I chose to go with the [[https://launchpad.net/~appimagelauncher-team/+archive/ubuntu/stable|PPA for ubuntu]] so ''apt'' can take care of updates etc.: covneiently, AppImageLauncher itself comes packaged for many distributions, because it needs to mess with your distribution's specific file paths etc. anyway. I chose to go with the [[https://launchpad.net/~appimagelauncher-team/+archive/ubuntu/stable|PPA for ubuntu]] so ''apt'' can take care of updates etc.:
Line 34: Line 39:
   sudo apt install appimagelauncher   sudo apt install appimagelauncher
  
-Ironitcally, the PPA does not provide packages for Ubuntu bionic (18.04) the now second newest LTS release even though the ''deb'' file which can be manually downloaded and installed from the [[https://github.com/TheAssassin/AppImageLauncher|GitHub]] page is named ''bionic'' because it is built for bionic and newer releases of Ubuntu.. This demonstrates again why AppImages are used and are a good thing after all :) So if you ware on Bionic, simply download the ''.deb'' from the [[https://github.com/TheAssassin/AppImageLauncher/releases|latest release]] and install it. you will have to update it yourself.. or simply update your ubuntu and then use the PPA :) +Ironitcally, the PPA does not provide packages for Ubuntu bionic (18.04) the now second newest LTS release even though the ''deb'' file which can be manually downloaded and installed from the [[https://github.com/TheAssassin/AppImageLauncher|GitHub]] page is named ''bionic'' because it is built for bionic and newer releases of Ubuntu.. This demonstrates again why AppImages are used and are a good thing after all :) So if you ware on Bionic, simply download the ''.deb'' from the [[https://github.com/TheAssassin/AppImageLauncher/releases|latest release]] and install it. you will have to update it yourself.. or simply update your ubuntu and then use the PPA :) 
 + 
 +once you have it installed, simply double clicke an appimage and you will be presented with a screen that says it all: 
 + 
 +{{ :appimages:pasted_20210221-073427.png }} 
 + 
 +if your appimage has embedded udpate information, you will see a option to check for updates if you right-click the app in your launcher, otherwise there is only the uninstall option.  
 + 
 +=== Uninstalling === 
 +AppImageLauncher can be uninstalled via ''apt'' or whatever package manager you used to install it. However, it can be that it leaves a little bit of garbage behind, which might get in your way if you want to use the beforementioned ''appimaged''. after uninstalling it, run  
 +   rm ~/.config/systemd/user/default.target.wants/appimagelauncherd.service 
 +to remove a left over symlink from your system. you need to reboot before you can try to run appimaged 
  
-once you have it installed, simply double clicke an appimage and you will be presented with a screen that says it all:  
-{{:appimages:pasted_20210221-073427.png}} 
  
  • appimages.txt
  • Last modified: 21.02.2021 10:22
  • by Pascal Suter