2

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?

Thanks!

2

"Does AppImage have anything similar?"

Yes, it is no problem to convert CLI tools into fully working AppImages.


CLI AppImages from the AppImage project itself

The AppImage developers offer several of their CLI utilities which serve to create, update and run AppImages as ready-made AppImages:


appimaged

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

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

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

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


CLI AppImages from other parties

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 v7.0.x

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

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 '--usage' flag.

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

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:

asciicast


Microsoft PowerShell for Linux

Microsoft PowerShell for Linux. Microsoft is distributing their new PowerShell for Linux as an AppImage. An ASCIIcast about this running on Debian is here:

asciicast

  • 1
    Dude. Awesome answer. I'm not marking the question answered yet to leave room for a Flatpak answer - but I'll mark it answered for sure eventually. Thanks again Kurt. – Michael Cole Feb 24 '18 at 18:32
  • 1
    @MichaelCole: AFAIK, Flatpak doesn't support packaging CLI apps (yet?). Should this be the case, and should you learn about it through an additional answer, please make sure to edit the AppImage wiki entry about this to reflect that fact. I'll also update above screenshot then. We don't want to distribute wrong info, do we? – Kurt Pfeifle Feb 24 '18 at 21:56
  • 1
    @MichaelCole: For more awesome info (mainly in topics/tags [pdf], [postscript], [ghostscript] and [imagemagick]) I invite you to pay a visit to my respective answers on StackOverflow. – Kurt Pfeifle Feb 24 '18 at 22:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.