我在项目Wiki中跟随Creating AppImages创建了一个AppImage。我应该创建一个AppRun文件,但我没有看到该文件格式的任何文档或如何创建它。我的项目是一个Python应用程序,apt-appdir不是一个选项,因为这是我的团队的软件,并没有任何回购。
答案 0 :(得分:2)
找到它。 AppRun位于指南开头创建的AppImageKit目录中。
答案 1 :(得分:1)
这是AppDir的一般结构:
MyApp.AppDir/
MyApp.AppDir/AppRun
MyApp.AppDir/myapp.desktop
MyApp.AppDir/myapp.png
MyApp.AppDir/usr/bin/myapp
MyApp.AppDir/usr/lib/libfoo.so.0
您可以使用functions.sh帮助程序脚本,而不是手动创建它,这将大大简化AppDir和AppImage的生成。
有关如何使用此内容的信息,请参阅sample recipes;有关格式的更正式说明,请参阅AppImageSpec。
答案 2 :(得分:1)
您可能已经知道,AppImage(类型2)是SquashFS压缩文件系统。在运行时,它会挂载到临时(动态创建)挂载点以执行其有效负载。这种“安装”业务由称为“运行时”的嵌入式组件进行维护。另一个嵌入式组件称为“AppRun”
AppRmage中的AppRun任务是调用AppImage的有效负载应用程序,并设置正确的参数和环境变量。
AppImage可以使用的AppRun有两个选项:
使用 标准 “AppRun”二进制文件,由AppImage项目提供,以便在此处下载:https://github.com/AppImage/AppImageKit/releases(注意,有两个版本要下载:一个用于i686,一个用于x64_86架构。无论你选择哪个,如果你手动将它重命名为AppRmage,你必须将它重命名为“AppRun”。)标准的AppRun没有做任何特别的事情,很有可能适合90%以上的项目。
使用您必须自己编写的 自定义 AppRun,它将执行您可能想到的所有花哨的事情:实现其他命令行参数,设置这里有一个非常复杂的AppRun的例子:https://github.com/KurtPfeifle/ImageMagick/blob/master/appimage/AppRun(例如,如果你使用 --help
运行an ImageMagick AppImage from here,它会工作。 参数)。
这样的AppRun甚至可以是Bash(或任何其他语言)脚本。
在许多情况下,AppRun可以只是来自AppImage顶级(根)目录的符号链接,指向AppImage中(相对) usr / bin / 路径中的可执行文件应该是足以调用并运行有效负载应用程序。