Формат файла AppRun?
Я создаю AppImage, следуя Созданию AppImages в проекте Wiki. Я должен создать файл AppRun, но я не вижу никакой документации о формате этого файла или о том, как его создать. Мой проект представляет собой приложение Python, и apt-appdir не является опцией, потому что это программное обеспечение моей команды и недоступно в любом репо.
3 ответа
Нашел это. AppRun находится в каталоге AppImageKit, созданном в начале руководства.
Вы, возможно, уже знаете, что AppImage (тип 2) является файловой системой, сжатой SquashFS. Во время выполнения он монтируется во временную (созданную на лету) точку монтирования для выполнения своей полезной нагрузки. Об этом "монтируемом" бизнесе заботится встроенный компонент, называемый "среда выполнения". Другой встроенный компонент называется "AppRun"
Задача AppRun внутри AppImage состоит в том, чтобы вызвать приложение полезной нагрузки AppImage с установленными правильными параметрами и переменными среды.
У вас есть две опции для AppRun, которые ваш AppImage может использовать:
Используйте стандартный двоичный файл "AppRun", как это предусмотрено проектом AppImage для загрузки здесь: https://github.com/AppImage/AppImageKit/releases (обратите внимание, что для загрузки доступны две версии: одна для i686, одна для x64_86 архитектура. Какой бы вариант вы ни выбрали, вам придется просто переименовать его в "AppRun", если вы встраиваете его в свой AppImage вручную.) Стандартный AppRun не делает ничего особенного и, скорее всего, подходит для более чем 90% проектов.
Используйте пользовательский AppRun, который вы должны написать сами и который будет делать все причудливые вещи, которые вы можете себе представить: реализовать дополнительные параметры командной строки, настроить среду очень специфическим способом и т. Д. Пример довольно сложного AppRun приведен здесь: https://github.com/KurtPfeifle/ImageMagick/blob/master/appimage/AppRun (Это работает, например, если вы запускаете ImageMagick AppImage отсюда с помощью
--help
параметр).Такой AppRun может даже быть скриптом Bash (или любого другого языка).
Во многих случаях AppRun может быть просто символической ссылкой из корневого (верхнего) каталога AppImage, указывающей на исполняемый файл в (относительном) usr / bin / path внутри AppImage, если этого будет достаточно для запуска и запуска приложения полезной нагрузки.
Это общая структура 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.
Посмотрите примеры рецептов о том, как использовать это, и AppImageSpec для более формальной спецификации формата.