AppImage
AppImage (formerly known as klik and PortableLinuxApps) is a format for distributing portable software on Linux without needing superuser permissions to install the application.[1] It aims to enable application developers to deploy binary software without being restricted to specific Linux distributions, a concept often referred to as upstream packaging. In this manner, a single developed software can effortlessly run on any Linux distribution, such as Ubuntu, RHEL, or Arch.
Developer(s) | Simon Peter |
---|---|
Initial release | 2004 |
Stable release | 13
/ December 31, 2020 |
Repository | |
Written in | C |
Operating system | Linux |
Type | Software download system, package format |
License | MIT License |
Website | appimage |
Released first in 2004 under the name klik, it was continuously developed, then renamed in 2011 to PortableLinuxApps and later in 2013 to AppImage.
History
AppImage's predecessor klik was designed in 2004 by Simon Peter.[2] The client-side software is GPL-licensed. klik integrated with web browsers on the user's computer. Users downloaded and installed software by typing a URL beginning with klik://
. This downloaded a klik "recipe" file, which was used to generate a .cmg file. For main ingredients, usually pre-built .deb packages from Debian Stable repositories were fed into the recipe's .cmg generation process. In this way, one recipe could be used to supply packages to a wide variety of platforms. With klik, only eight programs could be run at once because of the limitation of mounting compressed images with the Linux kernel, unless FUSE was used. The file was remounted each time the program is run, meaning the user could remove the program by simply deleting the .cmg file. A next version, klik2, was in development; and would natively incorporate the FUSE kernel module, but it never reached past the beta stage.[3] Around 2011, the klik project went dormant and the homepage went offline for some time.[4]
Simon Peter started a successor project named PortableLinuxApps with similar goals around that time.[5] The technology was adapted for instance by the "portablelinuxgames.org" repository, providing hundreds of mostly open-source video games.[6]
Around 2013, the software was renamed again from portableLinuxApps to AppImage; the license became the MIT license. AppImage is the format and AppImageKit is a concrete open source implementation. The development happens in a GitHub repository.[7]
Design
AppImage aims to be an application deployment system for Linux with the following objectives: simplicity, binary compatibility, portability, distro agnosticism, no installation, no root permission, and keeping the underlying operating system untouched.[8]
AppImage does not install the application in the traditional Linux sense. Instead of putting the application's various files in the distribution's appropriate places in the file system, the AppImage file is a single file system image itself. When it runs, the file is mounted with FUSE.
Each file is self-contained: it includes all libraries the application depends on that are not already part of the targeted base-system. A version 1.0 AppImage is an ISO 9660 Rock Ridge file (which can be optionally zisofs compressed) containing a minimal AppDir and a tiny runtime.[9] Version 2 may use other file system image formats like SquashFS.[10][11]
AppImage files are simpler than installing an application. No extraction tools are needed, nor is it necessary to modify the operating system or user environment. Regular users on the common Linux distributions can download it, make it executable, and run it.
AppImage allows generation of embedded digital signature, which need to be verified with an external utility. The format does not offer form of self-check with package authenticity verification or runtime confinement by sandboxing.[12]
Reception and usage
Klik was in 2007 the inspiration for Alexander Larsson's glick project, the precursor of Flatpak, which was released in 2016.[13]
See also
- Autopackage – Linux package management system
- List of Linux package management systems
- List of portable application creators
- ROX Desktop – Desktop environment for X Window System
- Snap (software) – Software deployment system for Linux by Canonical
- Zero Install – Software packaging mechanism
References
- Mobily, Tony (2006-04-07). "Free Software Magazine interview with Simon Peter". Free Software Magazine. Archived from the original on 2007-03-30. Retrieved 2007-05-05.
- "Slashdot - Point-and-klik Linux Software Installation?". slashdot.com.
- Screen capture video of Klik2 on video.google.com (archived)
- "klik - Linux Software Download". Archived from the original on 2007-06-26.
- Peter, Simon (2010). "AppImageKit Documentation 1.0" (PDF). PortableLinuxApps.org. pp. 2–3. Archived from the original (PDF) on 2010-11-29. Retrieved 2011-07-29.
- "Portable Games for Linux".
- "AppImageKit". github.com. 19 November 2021.
- AppImage: Linux apps that run anywhere on youtube.com by Simon Peter (June 2016)
- "Archived copy" (PDF). Archived from the original (PDF) on 2010-11-29. Retrieved 2011-08-03.
{{cite web}}
: CS1 maint: archived copy as title (link) - "AppImage/AppImageSpec". GitHub. 18 November 2021.
- "The future of AppImage: Type 2 and new tools". AppImage. September 15, 2016.
- "Signing AppImages — AppImage documentation". docs.appimage.org. Archived from the original on 2019-10-29. Retrieved 2019-10-29.
- Experiments with run-timeless app bundles by Alex Larsson (2007)