HOME

TheInfoList



OR:

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 documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
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 ...
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 t ...
permissions to install the
application Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
. 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 one ...
-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 syst ...
, distro agnosticism, no
installation Installation may refer to: * Installation (computer programs) * Installation, work of installation art * Installation, military base * Installation, into an office, especially a religious (Installation (Christianity) Installation is a Christian l ...
, 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 services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
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 larg ...
, 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 protect ...
. 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 gent ...
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 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 av ...
Rock Ridge 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 ava ...
file (which can be optionally zisofs compressed) containing a minimal
AppDir An application directory is a grouping of software code, help files and resources that together comprise a complete software package but are presented to the user as a single object. They are currently used in RISC OS and the ROX Desktop, and a ...
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 al ...
). 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 fro ...
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 ope ...
, 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 protect ...
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, controller, keyboard, or motion sensing device to generate visual feedback. This fee ...
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 comp ...
. 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, continuous ...
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 "agentless" s ...
*
Autopackage Autopackage is a free software, free computer package management system aimed at making it simple to create a package that can be installed on all Linux distributions, created by Mike Hearn around 2002. In August 2010, Listaller and Autopackage ...
*
Snap Snap or SNAP may refer to: Arts and entertainment * ''Snap'', the original release title for the 2013 film ''Enter the Dangerous Mind'' *''Snap'' (TV series), a CITV programme * ''The Stanly News and Press'', a newspaper in Albemarle, North Carol ...
*
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 install ...
, another similar project * ROX uses directories ( AppDirs) as application bundles. *
List of Linux package management systems This is a list of notable software package management systems, categorized first by package format (binary, source code, hybrid) and then by operating system family. Binary packages The following package management systems distribute apps in binar ...


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, mirrorin ...
(accessed August 2, 2011)
klik.atekon.de
Official klik site (archived) *
klik client
repository 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 usin ...
{{Linux package management systems Linux installation software Linux package management-related software Software distribution Software using the MIT license