pkg2appimage
This repository is intended to showcase the AppImage format and AppImageKit software used to create AppImages. It contains the pkg2appimage
tool and some recipes to generate AppImages (portable Linux apps) using AppImageKit.
There are multiple ways to generate AppImages. Upstream projects are encouraged to produce their own upstream packaging AppImages, like many projects already do.
Some branded applications are unfortunately not provided in AppImage format by their authors yet, and are not allowed to be redistributed. However, if there are suitable existing binary packages (either in archive or .deb
format or a ppa) then once can to convert these to an AppImage using pkg2appimage.
Usage
For applications for which there is already an existing .yml
recipe file, you can simply use the name of the application (without .yml
) as an argument. For example, to produce a Spotify AppImage, it is sufficient to do:
wget -c $(wget -q https://api.github.com/repos/AppImageCommunity/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | grep browser_download_url | head -n 1 | cut -d '"' -f 4)
chmod +x ./pkg2appimage-*.AppImage
./pkg2appimage-*.AppImage Spotify
.yml
recipes tell pkg2appimage where to get the ingredients from, and how to convert them to an AppImage. Study some examples to see how it works.
To build an AppImage from a local .yml
recipe (e.g., during development):
wget -c $(wget -q https://api.github.com/repos/AppImageCommunity/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | grep browser_download_url | head -n 1 | cut -d '"' -f 4)
chmod +x ./pkg2appimage-*.AppImage
./pkg2appimage-*.AppImage recipes/XXX.yml
Contributing
You are invited to contribute to the AppImage format, the AppImageKit tools, and the example AppImages provided by us).
The preferred channel of communication for general questions and remarks is our forum and mailing list at http://discourse.appimage.org/.
There is also the #AppImage IRC channel on irc.libera.chat - please stay in there for at least 48 hours because we are not all in the same timezone.