I'd like to package a service - e.g. nginx. I saw snaps could do this which is great.
Does Flatpak have any plans for a CLI runtime available as a service?
Does Appimage have anything similar?
"Does AppImage have anything similar?"
Yes, it is no problem to convert CLI tools into fully working AppImages.
The AppImage developers offer several of their CLI utilities which serve to create, update and run AppImages as ready-made AppImages:
appimaged. This is an (optional) helper daemon which automatically creates menu entries for every new AppImage which you store in any of the monitored directories:
appimageupdatetool. This is a tool which search for and apply automatic binary delta updates to any AppImage which is prepared for this mechanism. (For the update mechanism to be enabled, the AppImage creator needs to have made use of the 'type 2' AppImage format!) You can check if it is enabled by running '
./my.AppImage --appimage-updateinfo'. To update an AppImage, just run:
appimageupdatetool -d my.AppImage # describe where update comes from... appimageupdatetool my.AppImage # actually apply the update...
linuxdeployqt. Despite its name, this cannot ONLY be used for Qt applications, but also for others. This tool makes Linux applications self-contained by copying in the libraries and plugins that the application uses. It optionally also generates an AppImage.
zsync2 and zsyncmake2. These two make up the essential tools for supporting the binary delta mechanism for 'type 2' AppImages:
zsync2 does the heavy lifting of downloading the deltas and patching a copy of the existing (old) AppImage into a new one. At the end of the process you downloaded a percentage of the volume of the old AppImage but have the fullly sized two AppImages (old and new) available locally. Then just test the new and keep it (alongside the old or as the only one) if you like it.
zsyncmake2 is the tool which creates a *.zsync file from ANY file (not just an AppImage). So for 'my.binaryfile.exe' it will create 'my.binaryfile.exe.zsync'. That (much smaller) *.zsync file contains the metadata about the main file which will help to identify which byte ranges have changed from the previous version. If both files are now hosted side-by-side, the 'zsync2' CLI utility can figure out which byte-range(s) from the main (new) binary it should request for download in order to update the local (old) binary.
Download AppImage from: https://github.com/AppImage/zsync2/releases
I myself have build a few AppImages for my own use (some of which remain private for now), because they are very convenient for me: I host them on one shared directory on a Raspbery Pi in my home WLAN, but run them on multiple Linux systems where I have the shared directory automatically mounted upon each boot. This also works very well when testing Live CD ISOs.
ImageMagick v70.x. I'm building new (unofficial, of course!) releases almost daily for ImageMagick7. Hopefully, this will soon be adopted by the ImageMagick developers themselves...
QPDF. I've also built QPDF 8.0a pre-releases. Hopefully, it will not be long before the QPDF developer will release his own AppImage builds (you'll have to check here.)
This is also an example how to include your own custom 'AppRun' script into an AppImage. To see all the functionality of it, run the AppImage with the '
Update: Jay Berkenbilt, the QPDF author has made the first official release of QPDF-8.0.0 which includes an AppImage as the only binary build for Linux. Get it here: github.com/qpdf/qpdf/releases. I recommend you rename the AppImage to
qpdf.ai after download (or create a symlink with that name to it). This makes the handling of the (unwieldy for a CLI tool!) AppImage name much easier, and lets you continue to use the (old) distro-provided
qpdf just as before. No conflict!
IPP Sample Software. An AppImage with not just one, but four different CLI utilities is the IPP Sample Software provided by the ISTO Printer Working Group (PWG) which showcases the concepts of the Internet Printing Protocol (IPP) and the new IPP Everywhere standard to come. I made ASCIIcast providing a short introductionary tutorial about this software using my AppImage, which you can watch here:
Microsoft PowerShell for Linux. Microsoft is distributing their new PowerShell for Linux as an AppImage. An ASCIIcast about this running on Debian is here: