Skip to content

AppImageKit components

probonopd edited this page Nov 6, 2016 · 10 revisions

Deprecation notice

The content on this page 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. It has similar objectives as the earlier appimaged daemon. It is not required for the operation of AppImages. In fact, newer AppImages often ask the user whether the application should be installed in the menus, so the need for a daemon might be further reduced in the future.

AppImageUpdate.AppDir

AppImageUpdate is a GUI tool that lets end users update AppImages easily. If an AppImage has update information (metadata on where to get updates), then AppImageUpdate can download the latest version without the user needing to know where to download from. In that regard, it is similar to the Sparkle framework on the Mac.

It supports delta updates which means that only the portion of data that has changed needs to be downloaded.

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

./AppImageUpdate /path/to/some.AppImage

More information can be found in its README.md.

appimageupdategui

The GUI component for AppImageUpdate, written in Vala for GTK3. GUIs for Qt and other environments could be written, too. It contains no actual program logic but is just a wrapper around the bash script that does the actual work.

AppRun.c

Source code for the AppRun binary which is the main entry point into an AppDir. It reads from a .desktop file adjacent to it which exeutable should be started, changes cwd to usr/, and executes the specified executable. it also sets some environment variables that are important to the operation of AppDirs, such as LD_PRELOAD. AppDirs can be made without AppRun.c but it greatly simplifies putting together AppDirs by removing the need for boilerplate launcher bash scripts.

apt-appdir

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

artwork

As the name implies.

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.

build.sh

A script that makes building AppImageKit really easy. It installs the required dependencies on deb and rpm based systems and then invokes cmake.

CMakeLists.txt

[DEPRECATED] Tells cmake how to compile AppImageKit.

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).

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.

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).

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.

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".