Создание приложений формата AppImageДля создания приложений формата |
Действия для подготовки к использованию appimage-builder.sh:
Все перечисленные в этом подразделе действия должны выполняться на ОС, отличной от ОС Astra Linux Special Edition, например: Alpine Linux, Debian. |
скачать утилиту appimagetool: https://github.com/AppImage/appimagetool/releases. Поместить в любую директорию, например, /home/user/;
https://github.com/AppImage/type2-runtime/releases. Поместить в любую директорию, например, /home/user/; rpm2cpio и cpio; binutils;appimagetool-x86_64.AppImage и runtime-x86_64:chmod +x /home/user/appimagetool-x86_64.AppImage /home/user/runtime-x86_64 |
создать каталог appimage-builder:
mkdir /home/user/appimage-builder |
appimage-builder.sh и сделать его исполняемым:chmod +x /home/user/appimage-builder/appimage-builder.sh |
создать каталог приложения apps с подкаталогом наименования приложения (в примерах используется icaclient):
mkdir -p /home/user/appimage-builder/apps/icaclient |
создать в каталоге /home/user/appimage-builder/apps/icaclient файл sources и внести в него все зависимости приложения, пример:
http://security.debian.org/debian-security/pool/updates/main/w/webkit2gtk/libwebkit2gtk-4.0-37_2.42.5-1~deb12u1_amd64.deb http://security.debian.org/debian-security/pool/updates/main/w/webkit2gtk/libjavascriptcoregtk-4.0-18_2.42.5-1~deb12u1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/i/icu/libicu72_72.1-3_amd64.deb http://ftp.ru.debian.org/debian/pool/main/g/gst-plugins-bad1.0/libgstreamer-plugins-bad1.0-0_1.22.0-4+deb12u5_amd64.deb http://ftp.ru.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.1.5-2_amd64.deb http://ftp.ru.debian.org/debian/pool/main/liba/libavif/libavif15_0.11.1-1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/libm/libmanette/libmanette-0.2-0_0.2.6-3+b1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/d/dav1d/libdav1d6_1.0.0-2_amd64.deb http://ftp.ru.debian.org/debian/pool/main/libg/libgav1/libgav1-1_0.18.0-1+b1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/r/rust-rav1e/librav1e0_0.5.1-6_amd64.deb http://ftp.ru.debian.org/debian/pool/main/s/svt-av1/libsvtav1enc1_1.4.1+dfsg-1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/a/aom/libaom3_3.6.0-1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/liby/libyuv/libyuv0_0.0~git20230123.b2528b0-1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/a/abseil/libabsl20220623_20220623.1-1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/g/gcc-12/libstdc++6_12.2.0-14_amd64.deb http://ftp.ru.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.74.6-2_amd64.deb http://ftp.ru.debian.org/debian/pool/main/libs/libselinux/libselinux1_3.4-1+b6_amd64.deb http://ftp.ru.debian.org/debian/pool/main/libf/libffi/libffi8_3.4.4-1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/g/gstreamer1.0/libgstreamer1.0-0_1.22.0-2_amd64.deb http://ftp.ru.debian.org/debian/pool/main/g/gst-plugins-base1.0/libgstreamer-plugins-base1.0-0_1.22.0-3+deb12u1_amd64.deb http://ftp.ru.debian.org/debian/pool/main/g/gst-plugins-base1.0/libgstreamer-gl1.0-0_1.22.0-3+deb12u1_amd64.deb |
icaclient) создать подкаталог files:mkdir /home/user/appimage-builder/apps/icaclient/files |
files файлы для запуска AppImage, а именно:.png;.desktop, содержащий информацию о запуске приложения, пример:[Desktop Entry] Version=1.0 Type=Application Name=Citrix Workspace Icon=receiver Categories=Network; Exec=opt/Citrix/ICAClient/selfservice --icaroot opt/Citrix/ICAClient |
исполняемый файл AppRun, содержащий основную команду запуска приложения, пример:
#!/bin/sh
export LD_LIBRARY_PATH="lib/x86_64-linux-gnu;lib;lib64;usr/lib;usr/lib/x86_64-linux-gnu;"
readlink_file() {
next_path=$1
i=0
while [ "$i" != 10 ] && [ "x$next_path" != "x$path" ]; do
path=$next_path
next_path=$(readlink "$path" || echo $path)
((++i))
done
echo "$path"
}
basedir() {
file=$(readlink -f "$1") || $(readlink_file "$1")
echo $(cd "$(dirname "$file")" && pwd -P)
}
cd "$(basedir "$0")" && LD_PRELOAD=usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 opt/Citrix/ICAClient/selfservice --icaroot opt/Citrix/ICAClient |
Если приложение необходимо модифицировать, применить к нему патч, то это возможно сделать, создав исполняемый файл
|
icaclient) соответствует следующей:appimage-builder/icaclient ├── build.sh (необязательный файл) ├── files │ ├── AppRun │ ├── icaclient.desktop │ └── icaclient.png └── sources |
После выполнения всех перечисленных действий по подготовке среды выполнения можно перейти к формированию файлов .AppImage:
appimage-builder:cd /home/user/appimage-builder/ |
запустить исполняемый файл appimage-builder.sh, указав приложение, для которого необходимо сформировать .AppImage (в примере - icaclient), и инструменты сборки:
./appimage-builder.sh --appimage-tool /home/user/appimage-builder/appimagetool-x86_64.AppImage --appimage-runtime /home/user/appimage-builder/runtime-x86_64 icaclient |
Если среда выполнения была подготовлена правильно, то appimage-builder.sh автоматически создаст каталог AppImages в домашнем каталоге пользователя и поместит в него после сборки файлы .AppImage и журнал сборки. В качестве временного каталога используется /tmp/.
Список всех параметров, поддерживаемых исполняемым файлом appimage-builder.sh, приведен в таблице.
|