在 AppImage 或 Flatpak 中打包 CLI 服务?

Mic*_*ole 4 snap appimage flatpak

我想打包一个服务 - 例如 nginx。我看到快照可以做到这一点,这很棒。

Flatpak 是否有任何将CLI 运行时(命令行界面)作为服务提供的计划?

Appimage 有类似的东西吗?

Kur*_*fle 5

“AppImage 有类似的东西吗?”

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


来自 AppImage 项目本身的 CLI AppImage

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


应用图像化

应用图像。这是一个(可选)帮助程序守护进程,它会自动为您存储在任何受监视目录中的每个新 AppImage 创建菜单条目:


应用程序映像更新工具

应用程序图像更新工具。这是一个工具,可以搜索自动二进制增量更新并将其应用到为此机制准备的任何 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...
Run Code Online (Sandbox Code Playgroud)

linuxdeployqt

linuxdeployqt。尽管它的名字如此,但这不仅可以用于 Qt 应用程序,还可以用于其他应用程序。该工具通过复制应用程序使用的库和插件来使 Linux 应用程序变得独立。它还可以选择生成 AppImage。


zsync2 和 zsyncmake2

zsync2zsyncmake2。这两个构成了支持“类型 2” AppImage 的二进制增量机制的基本工具:

  • zsync2负责下载增量并将现有(旧)AppImage 的副本修补到新的 AppImage 中。在此过程结束时,您下载了旧 AppImage 体积的一定百分比,但本地有两个完整大小的 AppImage(旧的和新的)。然后测试新的并保留它(与旧的一起或作为唯一的),如果你喜欢的话。

  • zsyncmake2是从任何文件(不仅仅是 AppImage)创建*.zsync文件的工具。因此,对于'my.binaryfile.exe'它将创建'my.binaryfile.exe.zsync'。该(小得多的)*.zsync文件包含有关主文件的元数据,这将有助于识别哪些字节范围与以前的版本相比发生了更改。如果两个文件现在并排托管,“zsync2” CLI 实用程序可以确定应请求下载主(新)二进制文件中的哪些字节范围,以便更新本地(旧)二进制文件。

  • 从以下位置下载 AppImage: https: //github.com/AppImage/zsync2/releases


来自其他方的 CLI AppImages

我自己已经构建了一些 AppImage 供我自己使用(其中一些目前仍是私有的),因为它们对我来说非常方便:我将它们托管在我家庭 WLAN 中的 Raspbery Pi 上的一个共享目录上,但在多个上运行它们我在 Linux 系统中每次启动时都会自动安装共享目录。这在测试 Live CD ISO 时也非常有效。


ImageMagick v7.0.x

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


量子PDF

QPDF。我还构建了 QPDF 8.0a 预发行版。希望不久之后 QPDF 开发人员将发布他自己的 AppImage 版本(您必须在此处查看。)

这也是如何将您自己的自定义“AppRun”脚本包含到 AppImage 中的示例。要查看它的所有功能,请使用--usage标志运行 AppImage。

更新: QPDF 作者 Jay Berkenbilt 发布了 QPDF-8.0.0 的第一个正式版本,其中包含一个 AppImage 作为 Linux 的唯一二进制版本。在这里获取:github.com/qpdf/qpdf/releases。我建议您在下载后将 AppImage 重命名为qpdf.ai(或创建一个具有该名称的符号链接)。这使得处理(对于 CLI 工具来说很笨重!)AppImage 名称变得更加容易,并且让您可以qpdf像以前一样继续使用提供的(旧)发行版。不冲突!


IPP 示例软件

IPP 示例软件。IPP 示例软件是由ISTO打印机工作组(PWG)提供的IPP 示例软件, AppImage 不仅包含一个,还包含四个不同的 CLI 实用程序,它展示了Internet 打印协议(IPP) 和即将推出的新IPP Everywhere标准的概念。我使用我的 AppImage 制作了 ASCIIcast,提供了有关该软件的简短介绍教程,您可以在此处观看:

ASCII 广播


适用于 Linux 的 Microsoft PowerShell

适用于 Linux 的 Microsoft PowerShell。Microsoft 正在将适用于 Linux 的新PowerShell作为 AppImage 进行分发。关于 Debian 上运行的 ASCIIcast 如下:

ASCII 广播