我正在创建一个 AppImage,遵循项目 Wiki 中的创建 AppImages 。我应该创建一个 AppRun 文件,但我没有看到任何有关该文件格式或如何创建它的文档。我的项目是一个 Python 应用程序,而 apt-appdir 不是一个选项,因为这是我团队的软件,在任何存储库中都不可用。
您可能已经知道,AppImage(类型 2)是 SquashFS 压缩的文件系统。在运行时,它被安装到临时(动态创建的)安装点以执行其有效负载。这种“安装”业务由称为“运行时”的嵌入式组件负责。另一个嵌入式组件称为“AppRun”
AppImage 内的 AppRun 的任务是使用正确的参数和环境变量集调用 AppImage 的有效负载应用程序。
对于 AppImage 可以使用的 AppRun,您有两个选项:
使用标准的“AppRun”二进制文件,由 AppImage 项目提供,可在此处下载: https: //github.com/AppImage/AppImageKit/releases(请注意,有两个版本可供下载:一种用于 i686,一种用于 x64_86无论您选择哪种架构,如果您手动将其嵌入到 AppImage 中,则必须将其重命名为“AppRun”。)标准 AppRun 没有做任何特殊的事情,并且很可能适用于 90% 以上的项目。
使用您必须自己编写的自定义AppRun,它将执行您可能想象到的所有奇特事情:实现附加命令行参数、以非常具体的方式设置环境等。这里有一个相当复杂的 AppRun 示例:https://github.com/KurtPfeifle/ImageMagick/blob/master/appimage/AppRun (例如,如果您使用参数从此处运行 ImageMagick AppImage, 它就会起作用--help)。
这样的 AppRun 甚至可以是 Bash(或任何其他语言)脚本。
在许多情况下,AppRun 可以只是 AppImage 顶级(根)目录的符号链接,指向 AppImage 内(相对)usr/bin/路径中的可执行文件,这足以调用和运行有效负载应用程序。