Introduction
An AppImage is a Linux application packed into one
file, with the libraries it needs, so that it runs on most distributions without being
installed. The user downloads it, marks it as executable and runs it. Nothing is
copied into the system, and deleting the file removes the application. The extension
is usually written .AppImage.
Structure
An AppImage is two things joined together. It starts with a small
ELF program, the runtime, followed by a filesystem
image, usually SquashFS, holding the application. When run, the runtime mounts the
image with FUSE and starts the program inside it. Current AppImages (type 2) mark
themselves with the bytes 41 49 02 (AI and the type) at
offset 8, in a part of the ELF header that is otherwise unused.
Inside the image is an AppDir: an AppRun entry point that starts the
application, a .desktop file with its name and category, an icon, and the
application’s files. The runtime can also extract the image with
--appimage-extract.
0ELF runtime, withAI\x02at offset 8varies…SquashFS image: AppRun, .desktop file, icon, the applicationvaries
Links
Software
- Linux, which runs them directly once they are marked executable
- appimagetool, which builds them from an AppDir (Linux)