Download PDF
Download page Создание приложений формата AppImage.
Создание приложений формата AppImage
Создание приложений формата AppImage
Для создания приложений формата .AppImage
может использоваться исполняемый файл appimage-builder.sh
. Преобразование приложений должно выполняться на любом узле, отличном от Termidesk Live и на котором возможно разрешение зависимостей, приведенных ниже.
Действия для подготовки к использованию appimage-builder.sh
:
Все перечисленные в этом подразделе действия должны выполняться на ОС, отличной от ОС Astra Linux Special Edition, например: Alpine Linux, Debian.
скачать утилиту
appimagetool
:https://github.com/AppImage/appimagetool/releases
. Поместить в любую директорию, например,/home/user
/;- скачать среду выполнения runtime:
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
Если приложение необходимо модифицировать, применить к нему патч, то это возможно сделать, создав исполняемый файл build.sh
.
Build.sh
должен содержать в себе необходимые инструкции по модификации и должен быть скопирован в каталог приложения, в примерах это /home/user/appimage-builder/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
, приведен в таблице.
Параметр | Описание |
---|---|
| Вызов справки appimage-builder.sh |
| Вывод текущей версии appimage-builder.sh |
| Путь к инструменту сборки appimagetool |
| Путь к инструменту среды выполнения runtime |
| Каталог с файлами исходных пакетов (AppRun , .desktop , .png) |
| Каталог для сохранения собранных файлов .AppImage |
| Каталог с загруженными пакетами зависимостей. Задание параметра избавляет от необходимости повторной загрузки пакетов, указанных в sources |
| Каталог для сохранения журнала сборки |