AppImage is a format for distributing
portable
Portable may refer to:
General
* Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work
* Portable classroom, a temporary building installed on the grounds of a school to provide a ...
software
Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work.
...
on
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
without needing
superuser
In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of th ...
permissions to
install the
application. It tries also to allow
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading on ...
-agnostic binary software deployment for
application developers,
[ also called ]upstream
Upstream may refer to:
* Upstream (bioprocess)
* ''Upstream'' (film), a 1927 film by John Ford
* Upstream (networking)
* ''Upstream'' (newspaper), a newspaper covering the oil and gas industry
* Upstream (petroleum industry)
* Upstream (software ...
packaging. Released first in 2004 under the name klik, it was continuously developed, then renamed in 2011 to PortableLinuxApps and later in 2013 to AppImage.
Description
Objectives
AppImage aims to be an application deployment system for Linux with the following objectives: simplicity, binary compatibility
Binary-code compatibility (binary compatible or object-code-compatible) is a property of a computer system, meaning that it can run the same executable code, typically machine code for a general-purpose computer CPU, that another computer syste ...
, distro agnosticism, no installation, no root permission, being portable
Portable may refer to:
General
* Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work
* Portable classroom, a temporary building installed on the grounds of a school to provide a ...
, and keeping the underlying operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
untouched.
Properties
AppImage does not install the application in the traditional Linux sense. Instead of putting the application's various files in the distro's appropriate places in the file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one lar ...
, the AppImage file is just the application's compressed image. When it runs, the file is mounted with FUSE
Fuse or FUSE may refer to:
Devices
* Fuse (electrical), a device used in electrical systems to protect against excessive current
** Fuse (automotive), a class of fuses for vehicles
* Fuse (hydraulic), a device used in hydraulic systems to prote ...
. This behavior is consistent with AppImage's predecessors, klik and PortableLinuxApps.
It uses one file
File or filing may refer to:
Mechanical tools and processes
* File (tool), a tool used to ''remove'' fine amounts of material from a workpiece
** Filing (metalworking), a material removal process in manufacturing
** Nail file, a tool used to g ...
per application. Each file is self-contained: it includes all libraries
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
the application depends
Depend is a brand of absorbent, disposable underwear and undergarments for people with urinary or fecal incontinence. It is a Kimberly-Clark brand, and positions its products as an alternative to typical adult diapers. Depend is the dominant brand ...
on that are not already part of the targeted base-system. An AppImage of version 1.0 is an ISO 9660
ISO 9660 (also known as ECMA-119) is a file system for optical disc media. Being sold by the International Organization for Standardization (ISO) the file system is considered an international technical standard. Since the specification is ...
Rock Ridge file (which can be optionally zisofs compressed) containing a minimal AppDir and a tiny runtime. (Version 2 may use other file system image formats like SquashFS
Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes from 4 KiB up to 1 MiB for greater compression. Several compression algorithms are supported. Squashfs is als ...
). An AppImage application can be added to a live CD
A live CD (also live DVD, live disc, or live operating system) is a complete bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loading f ...
by adding only one file to the live CD.
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.
History
klik
AppImage's predecessor klik was designed in 2004 by Simon Peter. The client-side software is GPL
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
-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
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
, unless FUSE
Fuse or FUSE may refer to:
Devices
* Fuse (electrical), a device used in electrical systems to protect against excessive current
** Fuse (automotive), a class of fuses for vehicles
* Fuse (hydraulic), a device used in hydraulic systems to prote ...
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. Around 2011, the klik project went dormant and the homepage went offline for some time.
PortableLinuxApps
Simon Peter started a successor project named PortableLinuxApps with similar goals around that time. The technology was adapted for instance by the "portablelinuxgames.org" repository, providing hundreds of mostly open-source video game
Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device to gener ...
s.
AppImage
Around 2013, the software was renamed again from portableLinuxApps to AppImage; the license became the MIT license
The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license co ...
. AppImage is the format and AppImageKit is a concrete open source implementation. The development happens in a GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
repository.
Reception and usage
Klik was in 2007 the inspiration for Alexander Larsson's glick project, the precursor of Flatpak
Flatpak, formerly known as xdg-app, is a utility for software deployment and package management for Linux. It is advertised as offering a sandbox environment in which users can run application software in isolation from the rest of the system. ...
, which was released in 2016.Experiments with run-timeless app bundles
by Alex Larsson (2007)
Many open source software projects now distribute binaries as AppImages.
See also
*
Portable application creators Portable application creators allow the creation of portable applications (also called portable apps). They usually use application virtualization.
Creators of independent portable
No agent or client is required for these (also called " agentles ...
*
Autopackage
*
Snap
*
Flatpak
Flatpak, formerly known as xdg-app, is a utility for software deployment and package management for Linux. It is advertised as offering a sandbox environment in which users can run application software in isolation from the rest of the system. ...
*
Zero Install
Zero Install is a means of distributing and packaging software for multiple operating systems (Unix-like including Linux and macOS, Windows).
Software
Rather than the normal method of downloading a software package, extracting it, and instal ...
, another similar project
*
ROX uses directories (
AppDirs) as application bundles.
*
List of Linux package management systems
References
External links
*
*
AppImages for various applications by the AppImage developer*
ttps://web.archive.org/web/20110810070025/http://portablelinuxapps.org/ portablelinuxapps.orgproject page on
SourceForge
SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrori ...
(accessed August 2, 2011)
klik.atekon.deOfficial klik site (archived)
*
klik clientrepository page at
Google Code
Google Developers (previously Google Code) , application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers usi ...
{{Linux package management systems
Linux installation software
Linux package management-related software
Software distribution
Software using the MIT license