将CLI服务打包成AppImage还是Flatpak?

我想打包一个服务,比如nginx。我看到snaps可以做到这一点,这很棒。
Flatpak有没有计划提供作为服务的CLI运行时(命令行界面)?
Appimage有类似的东西吗?
1个回答

是的,将CLI工具转换为完全可用的AppImages是没有问题的。

来自AppImage项目本身的CLI AppImages

AppImage开发人员提供了几个CLI实用工具,用于创建、更新和运行AppImages作为现成的AppImages:


appimaged

appimaged。这是一个(可选的)辅助守护程序,它会自动为您存储在任何受监控目录中的每个新的AppImage创建菜单项:


appimageupdatetool

appimageupdatetool。 这是一个工具,用于搜索并应用自动二进制增量更新到任何已准备好使用此机制的AppImage。(要启用更新机制,AppImage创建者需要使用“类型2”AppImage格式!)您可以通过运行' './my.AppImage --appimage-updateinfo'来检查是否已启用。要更新AppImage,只需运行:

appimageupdatetool -d my.AppImage   # describe where update comes from...
appimageupdatetool my.AppImage      # actually apply the update...

从以下链接中下载AppImage:https://github.com/AppImage/AppImageUpdate/releases

linuxdeployqt

linuxdeployqt. 尽管其名称如此,但它不仅可以用于Qt应用程序,还可以用于其他应用程序。该工具通过复制应用程序使用的库和插件,使Linux应用程序自包含。它还可选择性地生成AppImage。


zsync2和zsyncmake2

zsync2zsyncmake2是支持二进制增量机制的关键工具,用于'type 2' AppImages。

  • zsync2负责下载增量并将现有(旧的)AppImage的副本打补丁成新的AppImage。在该过程结束时,您下载了旧AppImage体积的一部分,但本地可用的是完整大小的两个AppImages(旧的和新的)。然后,如果您喜欢它,只需测试新的并保留它(与旧版本一起或作为唯一版本)。

  • zsyncmake2是一个工具,可以从任意文件(不仅限于AppImage)创建一个*.zsync文件。因此,对于'my.binaryfile.exe',它将创建'my.binaryfile.exe.zsync'。这个(更小的)*.zsync文件包含有关主文件的元数据,将帮助确定哪些字节范围与上一个版本发生了变化。如果现在两个文件都托管在同一位置,'zsync2'命令行实用程序就能够确定应请求哪些来自主(新)二进制文件的字节范围,以便更新本地(旧的)二进制文件。

  • 从以下链接下载AppImage: https://github.com/AppImage/zsync2/releases


来自其他方的CLI AppImages

我自己为了自己的使用构建了一些AppImages(其中一些目前仍保密),因为它们对我来说非常方便:我将它们托管在我家无线局域网中的一个共享目录上,但在多个Linux系统上运行它们,每次启动时都会自动挂载共享目录。这在测试Live CD ISO时也非常有效。


ImageMagick v7.0.x

ImageMagick v70.x. 我每天几乎都在为ImageMagick7构建新的(非官方的,当然!)版本。希望这很快会被ImageMagick开发人员本身采用...


QPDF

QPDF。我还构建了QPDF 8.0a的预发布版本。希望不久之后,QPDF开发者将发布自己的AppImage构建(你可以在这里查看。)

这也是一个示例,说明如何将自定义的'AppRun'脚本包含到AppImage中。要查看其所有功能,请使用'--usage'标志运行AppImage。

更新:Jay Berkenbilt,QPDF的作者已经发布了QPDF-8.0.0的第一个官方版本,其中包括一个AppImage作为Linux的唯一二进制构建。在这里获取:github.com/qpdf/qpdf/releases。我建议您在下载后将AppImage重命名为qpdf.ai(或者创建一个符号链接到它),这样可以更轻松地处理(对于CLI工具来说有些笨重!)AppImage名称,并且让您像以前一样继续使用(旧的)发行版提供的qpdf。没有冲突!

IPP示例软件

IPP示例软件。一个AppImage不仅包含一个,而是四个不同的命令行实用程序,这就是由ISTO Printer Working Group (PWG)提供的IPP示例软件,展示了Internet Printing Protocol(IPP)和即将推出的新IPP Everywhere标准的概念。我制作了一个ASCIIcast,使用我的AppImage为这个软件提供了一个简短的入门教程,您可以在这里观看:

asciicast


Microsoft PowerShell适用于Linux

Microsoft PowerShell适用于Linux。微软正在以AppImage的形式分发他们的新版PowerShell for Linux。关于在Debian上运行此版本的ASCIIcast可以在这里找到:

asciicast

从以下链接下载PowerShell AppImage: https://github.com/PowerShell/PowerShell/releases

1哥们,太棒了!你的回答真是太赞了。虽然我还没标记问题为已解决,留点空间给Flatpak的回答,但我肯定最终会将其标记为已解决的。再次感谢你,Kurt。 - Michael Cole
1@MichaelCole:据我所知,Flatpak目前不支持打包CLI应用程序。如果是这种情况,并且你通过额外的答案了解到了相关信息,请务必编辑AppImage维基页面以反映这一事实。然后我会更新上面的截图。我们不希望传播错误的信息,对吧? - Kurt Pfeifle
1@MichaelCole:想要获取更多有关[pdf][postscript][ghostscript][imagemagick]等主题/标签的精彩信息,我邀请您访问我的StackOverflow个人资料 - Kurt Pfeifle