Skip to content

AppImageKit components

probonopd edited this page Feb 6, 2017 · 10 revisions

Main components

  • appimagetool - converts an AppDir into an AppImage. Used by application developers that want to provide their application as an AppImage. End users never need to see it.
  • runtime - self-mounts an AppImage and runs the contained payload app. Gets embedded into each AppImage by appimagetool. End users never need to see it.
  • AppRun - a file with this name must be in each AppDir. It launches the main payload application. End users never need to see it.
  • appimaged - optional daemon that integrates AppImages into the system (e.g., menus, icons, file formats). End users can optionally install it.
  • validate - validates GPG signatures inside AppImage files. Will be used by appimaged in the future.

Also see https://github.com/AppImage/AppImageSpec/blob/master/draft.md.

Other components

desktopintegration

A script that AppImage creators may use if they want to give the end user the option to install a `.desktop' file so that the AppImage shows up in the desktop environment's menus, and so that documents can be opened using the AppImage by double-clicking on them (using MIME types).

LibcWrapGenerator

Helps to compile C code so that it can run on systems that use an older version of glibc than what is present on the build system. If you can, build your software on old build systems (such as CentOS current major version minus 1 or debian oldstable).

runtime.c

Source code for the ELF binary that is part of every AppImage. Runtime mounts the ISO in the AppImage and executes the AppRun file contained therein. It also sets some environment variables such as $APPIMAGE and $APPDIR that are available to the "inside".

Deprecated components

The content below is deprecated. AppImageKit has since changed a lot.

AppDirAssistant.AppDir

[DEPRECATED] AppDirAssistant is a GUI tool that lets end users put together AppImages by observing the host system during the installation of an application, and by copying the changed files into an AppDir. In that respect it is similar to checkinstall which observes the installation and puts the result into a .deb or .rpm file. The output of AppDirAssistant is an AppDir, which you can turn into an AppImage, e.g., by running AppImageAssistant.

AppImageAssistant.AppDir

[DEPRECATED] AppImageAssistant is a GUI tool that takes an AppDir and turns it into an AppImage.

It can also be invoked as a CLI tool like this:

./AppImageAssistant /path/to/some.AppDir  /path/to/some.AppImage

It then packages the AppDir as an AppImage. Internally, AppImageAssistant is using the package script to do this.

AppImageExtract.AppDir

[DEPRECATED] AppImageExtract is a GUI tool that extracts the contents of an AppImage to an AppDir. By default, it puts the resulting AppDir to $HOME/Desktop, so that it shows up on the desktop.

It can also be invoked as a CLI tool like this:

./AppImageExtract /path/to/some.AppImage

It then extracts the AppImage without any GUI.

AppImageMonitor.AppDir

[DEPRECATED] AppImageMonitor is an experimental daemon that watches certain directories of the system for AppImages, and if it finds a new AppImage, installs its .desktop file and icon so that the application can be launched from the desktop environment's menus. Has been replaced by the optional appimaged daemon.

apt-appdir

[DEPRECATED] Proof-of-concept CLI script that shows how to convert debian packages into AppDirs.

binary-dependencies

[DEPRECATED] Some helper binaries and libraries that are used when putting together AppImages of AppDirAssistant, AppImageAssistant, AppImageExtract, etc. These come from outside upstream projects and are not modified by the AppImageKit authors. They are mirrored here purely for convenience.

fuseiso* and isofs.*

[DEPRECATED] FUSE-based ISO filesystem that is used by runtime.c to mount the AppImage when it is executed. These cannot be used "standalone", it rather is part of every AppImage.

md5.*

[DEPRECATED] Code that is needed by AppRun.c to extract the AppImage's icon file and put it into the host's thumbnails directory, from where desktop environments can pick it up.