Как упаковать программы оболочки в AppImage?

Я сделал AppImage через:

linuxdeploy --appdir AppDir --icon-file icon.png --desktop-file desktop.desktop --executable myExecutable --output appimage

который работает нормально. Однако программа, которую я упаковал (myExecutable), делает вызовы оболочки (скажем, shellProgram1, shellProgram2, ...) во время выполнения, чтобы использовать различные программы, которые не обязательно есть в каждом дистрибутиве.

Вопрос. Предоставляет ли linuxdeploy (или какая-либо другая утилита AppImage) простой способ упаковать эти программы в AppImage, чтобы, когда myExecutable вызывает их во время выполнения, они гарантированно были доступны?


person George    schedule 28.01.2020    source источник


Ответы (1)


Для этого вам нужно развернуть все двоичные файлы, которые могут отсутствовать во всех дистрибутивах, в AppDir и настроить среду PATH, чтобы сделать их доступными во время выполнения.

С linuxdeploy вам нужно вручную скопировать файлы в AppDir и создать оболочку для основного двоичного файла, чтобы установить PATH. Что-то вроде этого

$!/bin/bash
export PATH="$APPDIR/usr/bin:$PATH"

exec $APPDIR/usr/bin/my_program

Вы также можете использовать appimage-builder, который создает такую ​​оболочку для вас. В папке примеров проекта вы можете найти несколько рецептов, которые можно использовать для вдохновения.

person Alexis    schedule 30.03.2020