1 # AppImageKit [![Build Status](https://travis-ci.org/AppImage/AppImageKit.svg?branch=appimagetool/master)](https://travis-ci.org/AppImage/AppImageKit) [![discourse](https://img.shields.io/badge/forum-discourse-orange.svg)](http://discourse.appimage.org) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/probonopd/AppImageKit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![irc](https://img.shields.io/badge/IRC-%23AppImage%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=AppImage) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZT9CL8M5TJU72)
3 Copyright (c) 2004-17 Simon Peter <probono@puredarwin.org> and contributors.
5 Using AppImageKit you can package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, Ubuntu, Fedora, Debian and derivatives.
7 The __AppImage__ format is a format for packaging applications in a way that allows them to
8 run on a variety of different target systems (base operating systems, distributions) without further modification.
10 https://en.wikipedia.org/wiki/AppImage
12 __AppImageKit__ is a concrete implementation of the AppImage format and provides tools such as `appimagetool` and `appimaged` for conveniently handling AppImages.
14 `appimagetool` uses a next-generation AppImage format based on squashfs and embeds a runtime for it. `appimaged` is a daemon that handles registering and unregistering AppImages with the system (e.g., menu entries, icons, MIME types, binary delta updates, and such).
18 A precompiled version can be found in the last successful Travis CI build, you can get it with:
21 wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
22 chmod a+x appimagetool-x86_64.AppImage
24 Usage in a nutshell, assuming that you already have an [AppDir](https://github.com/AppImage/AppImageSpec/blob/master/draft.md#appdir) in place:
26 ./appimagetool-x86_64.AppImage some.AppDir
32 appimagetool [OPTION...] SOURCE [DESTINATION] - Generate, extract, and inspect AppImages
35 -h, --help Show help options
38 -l, --list List files in SOURCE AppImage
39 -u, --updateinformation Embed update information STRING; if zsyncmake is installed, generate zsync file
40 --bintray-user Bintray user name
41 --bintray-repo Bintray repository
42 --version Show version number
43 -v, --verbose Produce verbose output
44 -s, --sign Sign with gpg2
45 -n, --no-appstream Do not check AppStream metadata
48 If you want to generate an AppImage manually, you can:
51 mksquashfs Your.AppDir Your.squashfs -root-owned -noappend
52 cat runtime >> Your.AppImage
53 cat Your.squashfs >> Your.AppImage
54 chmod a+x Your.AppImage
58 `appimaged` is an optional daemon that watches locations like `~/bin` and `~/Downloads` for AppImages and if it detects some, registers them with the system, so that they show up in the menu, have their icons show up, MIME types associated, etc. It also unregisters AppImages again from the system if they are deleted. If [firejail](https://github.com/netblue30/firejail) is installed, it runs the AppImages with it.
60 A precompiled version can be found in the last successful Travis CI build, you can get it with:
63 wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimaged-x86_64.AppImage"
64 chmod a+x appimaged-x86_64.AppImage
70 ./appimaged-x86_64.AppImage --install
73 Or, if you are on a deb-based system:
76 wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimaged_1.0_amd64.deb"
77 sudo dpkg -i appimaged_*.deb
78 systemctl --user enable appimaged
79 systemctl --user start appimaged
82 It will register the AppImages in with your system from the following places:
87 * /isodevice/Applications
88 * /isofrom/Applications
89 * /run/archiso/img_dev/Applications
93 Run `appimaged -v` for increased verbosity.
101 -h, --help Show help options
104 -v, --verbose Be verbose
105 -i, --install Install this appimaged instance to $HOME
106 -u, --uninstall Uninstall an appimaged instance from $HOME
107 --version Show version number
111 __NOTE:__ It may be necessary to restart (or `xkill`) dash, nautilus, to recognize new directories that didn't exist prior to the first run of `appimaged`. Alternatively, it should be sufficient to log out of the session and log in again after having run appimaged once.
113 If you have `AppImageUpdate` on your `$PATH`, then it can also do this neat trick:
115 ![screenshot from 2016-10-15 16-37-05](https://cloud.githubusercontent.com/assets/2480569/19410850/0390fe9c-92f6-11e6-9882-3ca6d360a190.jpg)
117 Here is an easy way to get the latest AppImageUpdate onto your `$PATH`:
121 nodeFileName=$(wget -q "https://bintray.com/package/files/probono/AppImages/$APP?order=desc&sort=fileLastModified&basePath=&tab=files" -O - | grep -e '-x86_64.AppImage">' | cut -d '"' -f 6 | head -n 1)
122 wget -c "https://bintray.com/$nodeFileName" -O "$APP"
124 sudo mv "$APP" /usr/local/bin/
129 __NOTE:__ The AppImage project supplies [binaries](https://github.com/AppImage/AppImageKit/releases/tag/continuous) that application developers can use. These binaries are built using the CentOS 6 Docker on Travis CI build system in this repository. As an application developer, you do not have to use the build system. You only have to use the build systems when contributing to AppImageKit, when needing another architecture than `x86_64`, or when trying to reproduce our binaries.
131 On a not too recent Ubuntu:
134 git clone -b appimagetool/master --single-branch --recursive https://github.com/AppImage/AppImageKit
136 sudo bash -ex install-build-deps.sh