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.
本仓库旨在展示 AppImage 格式和打包用到的 AppImageKit 软件。它包含 pkg2appimage
工具和一些使用 AppImageKit 生成 AppImage (便携式Linux应用)的配置文件。
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.
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 https://github.com/$(wget -q https://github.com/AppImage/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
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 https://github.com/$(wget -q https://github.com/AppImage/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
chmod +x ./pkg2appimage-*.AppImage
./pkg2appimage-*.AppImage recipes/XXX.yml
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.freenode.net - please stay in there for at least 48 hours because we are not all in the same timezone.