gitmyhub

AppImageKit

C ★ 9.3k updated 1y ago

Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat

AppImageKit is the toolkit for packaging Linux desktop apps as single portable files that run on any distro, no installation, no root access, and no changes to system libraries required.

CFUSEShellsetup: moderatecomplexity 3/5

AppImage is a format for distributing Linux desktop applications as a single, self-contained file that runs on many different Linux distributions without installation. Instead of going through a package manager or running an installer, a user downloads one file, makes it executable, and runs it directly. Nothing is unpacked into system folders, no administrator access is required, and no system libraries are changed. The same file works across distributions like Ubuntu, Fedora, Debian, and openSUSE.

AppImageKit is the toolset that implements this format. At its core is the AppImage runtime, a small piece of code embedded inside every AppImage file. When the file is run, the runtime mounts a compressed filesystem contained inside it and transparently starts the application, using a Linux feature called FUSE. If FUSE is not available on a system, a command-line flag lets the user extract the contents to disk instead and run it from there.

Beyond the basic run-it flow, AppImages support several optional features. Binary delta updates mean that when an application releases a new version, only the changed portions need to be downloaded rather than the full file. AppImages can be GPG-signed for verification. Applications can also run in a portable mode where configuration files are stored in a folder placed next to the AppImage file itself, which is useful for carrying an application on a USB drive complete with its saved settings.

The primary tool for building AppImages is called appimagetool, which takes a prepared application directory and packages it into the final file format. Higher-level tools used by application developers typically wrap appimagetool to make the packaging process simpler. End users do not need any of these tools and generally do not interact with them at all. A central directory of available AppImages can be browsed at AppImageHub.

Where it fits