AppImage
{{Short description|Linux executable file format}}
{{Infobox file format
| name = AppImage
| logo = App-image-logo.svg
| screenshot =
| caption =
| extension = .AppImage
| magic = {{code|41 49 02}} (3 bytes hexadecimal from offset 8)
| developer = Simon Peter
| released = {{Start date and age|2004}}
| latest release version = V13.
| latest release date = {{Start date and age|2020|12|31}}
| container_for = Software installation
| free = Yes
| open = Yes
| url = {{URL|https://appimage.org}}
}}
AppImage (formerly known as klik and PortableLinuxApps) is an open-source format for distributing portable software on Linux. It aims to allow the installation of binary software independently of specific Linux distributions. As a result, one AppImage can be installed and run across various GNU/Linux distributions without needing to use different files. It aims to be a format that is self-contained, rootless, and independent of the underlying Linux distribution.{{cite web |url=http://www.freesoftwaremagazine.com/articles/simon_peter_interview |title=Free Software Magazine interview with Simon Peter |last=Mobily |first=Tony |publisher=Free Software Magazine |date=2006-04-07 |access-date=2007-05-05 |archive-url=https://web.archive.org/web/20070330201107/http://www.freesoftwaremagazine.com/articles/simon_peter_interview |archive-date=2007-03-30 |url-status=dead }}
Released first in 2004 under the name klik, it was continuously developed, then renamed in 2011 to PortableLinuxApps and later in 2013 to AppImage. Version 2 was released in 2016.
History
AppImage's predecessor, klik, was designed in 2004 by Simon Peter.{{cite web|url=http://linux.slashdot.org/article.pl?sid=05/01/15/1815210&tid=90&tid=106 |title=Slashdot - Point-and-klik Linux Software Installation? |date=15 January 2005 |publisher=slashdot.com}} The client-side software is licensed under the GNU GPL. 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 the main ingredients, pre-built .deb packages from Debian Stable repositories were usually fed into the recipe's generation process. 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 was run, meaning the user could remove the program entirely by simply deleting the file. The next version, klik2, was in development and would natively incorporate the FUSE kernel module, but it never reached past the beta stage.[https://web.archive.org/web/20110624181020/http://video.google.com/videoplay?docid=-1910211845236337938%23 Screen capture video of Klik2] on video.google.com (archived) Around 2011, the klik project went dormant, and the website went offline.{{cite web|url=http://klik.atekon.de |title=klik - Linux Software Download |url-status=dead |archive-url=https://web.archive.org/web/20070626012138/http://klik.atekon.de/ |archive-date=2007-06-26 }}
Simon Peter started a successor project named PortableLinuxApps with similar goals around that time.{{cite web |url=http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf |publisher=PortableLinuxApps.org |first=Simon |last=Peter |year=2010 |access-date=2011-07-29 |title=AppImageKit Documentation 1.0 |pages=2–3 |archive-url=https://web.archive.org/web/20101129031656/http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf |archive-date=2010-11-29 |url-status=dead }} The technology was adopted, for instance, by the "portablelinuxgames.org" repository, which provided hundreds of mostly open-source video games.{{cite web|url=https://portablelinuxgames.org/ |title=Portable Games for Linux }}
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.{{cite web|url=https://github.com/probonopd/AppImageKit/blob/master/README.md|title=AppImageKit|date=19 November 2021|publisher=github.com}}
In 2016, Version 2 of the AppImage specification was drafted. Version 2 is unrestricted in filesystem type (a draft implementation used SquashFS).{{Cite web |date=18 November 2021 |title=AppImage/AppImageSpec |url=https://github.com/AppImage/AppImageSpec |website=GitHub}}{{Cite web |date=September 15, 2016 |title=The future of AppImage: Type 2 and new tools |url=https://discourse.appimage.org/t/the-future-of-appimage-type-2-and-new-tools/65/2 |website=AppImage}} It removes the fixed offset for where the filesystem image begins in the file and enabled digital signatures to be embedded directly in the AppImage as opposed to as a separate file.
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.[https://www.youtube.com/watch?v=mVVP77jC8Fc AppImage: Linux apps that run anywhere] on youtube.com by Simon Peter (June 2016) Because of this, AppImage does not install software by placing executables in various locations. Instead, the file is a single filesystem image itself. When run, the file is mounted with FUSE. AppImage is designed to be simpler to use than traditional installer formats such as Deb and RPM, since it is not necessary to modify the operating system or user environment.
Each file is self-contained; it includes all libraries the application depends on that are not already part of the targeted system. A version 1.0 AppImage is an ISO 9660 Rock Ridge file (which can be optionally compressed via zisofs) containing a minimal AppDir and a runtime.{{Cite web |last=Peter |first=Simon |title=AppImageKit Documentation |url=http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf |url-status=dead |archive-url=https://web.archive.org/web/20101129031656/http://portablelinuxapps.org/docs/1.0/AppImageKit.pdf |archive-date=2010-11-29 |archive-format=PDF |access-date=2011-08-03}}
AppImage allows the embedding of digital signatures, which need to be verified externally. The format does not require signatures to be validated, only that they may be included.{{Cite web|url=https://docs.appimage.org/packaging-guide/signatures.html|title=Signing AppImages — AppImage documentation|website=docs.appimage.org|access-date=2019-10-29|archive-date=2019-10-29|archive-url=https://web.archive.org/web/20191029150353/https://docs.appimage.org/packaging-guide/signatures.html|url-status=dead}} AppImage does not enforce sandboxing, but it may be done by some applications.{{Cite web |last=Peter |first=Simon |date=2020-09-20 |title=AppImage Mythbusting |url=https://github.com/AppImage/AppImageKit/releases/download/1/AppImage.Mythbusting.2020.pdf |access-date=2024-01-18 |website=GitHub |page=17 |format=PDF}}
Reception and usage
In 2007, Klik was the inspiration for Alexander Larsson's glick project, the precursor of Flatpak.{{Cite web |date=2007-08-07 |title=Experiments with runtime-less app-bundles – Alexander Larsson |url=https://blogs.gnome.org/alexl/2007/08/07/experiments-with-runtime-less-app-bundles/ |access-date=2024-01-18 |language=en-US}}
In 2015, Linus Torvalds, creator of the Linux kernel, said that "[t]his is just very cool. I finally got around to play with the 'AppImage' version of Subsurface, and it really does seem to 'just work'."{{Cite web |last=Torvalds |first=Linus |date=2016-02-05 |title=This is just very cool. I finally got around to play with the "AppImage"… |url=https://plus.google.com/+LinusTorvalds/posts/WyrATKUnmrS |url-status=dead |archive-url=https://web.archive.org/web/20160205074927/https://plus.google.com/+LinusTorvalds/posts/WyrATKUnmrS |archive-date=2016-02-05 |access-date=2024-01-18 |website=Google Plus}} Mark Shuttleworth stated that "AppImages are a pretty clean experience and I admire the work behind them."{{Cite web |last=Shuttleworth |first=Mark |date=2017-04-09 |title=I would like to thank all of you for your spirit and intellect and energy in ... |url=https://plus.google.com/+MarkShuttleworthCanonical/posts/7LYubpaHUHH |url-status=dead |archive-url=https://web.archive.org/web/20170409021339/https://plus.google.com/+MarkShuttleworthCanonical/posts/7LYubpaHUHH |archive-date=2017-04-09 |access-date=2024-01-18 |website=Google Plus}}
See also
- {{annotated link|Autopackage}}
- {{annotated link|List of Linux package management systems}}
- {{annotated link|List of portable application creators}}
- {{annotated link|ROX Desktop}}
- {{annotated link|Snap (software)}}
- App (file format) – A HarmonyOS application that makes use of similar principles
References
{{refs}}
External links
- {{Official website|https://appimage.org/}}
- [https://appimage.github.io AppImages for various applications by the AppImage developer]
- [https://www.linuxuprising.com/2018/04/easily-run-and-integrate-appimage-files.html Easily Run And Integrate AppImage Files With AppImageLauncher]
{{Linux package management systems}}
Category:Linux installation software
Category:Linux package management-related software