Создание приложений (aft-app)#

Инструмент aft-app превращает deb-пакет в изолированное Flatpak-приложение. Он разбирает зависимости пакета во время выполнения, убирает то, что уже даёт среда выполнения, исправляет зашитые в файлы пути, приводит desktop-файлы и иконки к идентификатору приложения, формирует AppStream-метаданные и экспортирует результат в репозиторий. По желанию приложение подписывается и проверяется на уязвимости.

Работать можно двумя способами: задать всё флагами команды package или описать сборку в YAML-манифесте и собрать командой build. Оба способа равноценны: один и тот же набор настроек доступен и через флаги, и через манифест. Команда generate-yaml собирает манифест из флагов, поэтому удобный путь - подобрать параметры флагами, выгрузить их в манифест и дальше вести сборку через него.

Из чего состоит раздел#

Команды#

build#

aft-app build <файл.yaml> - сборка приложения по манифесту. В одном файле можно описать несколько приложений, разделив документы строкой ---; они собираются по очереди. Нужны права администратора.

package#

aft-app package [опции] - сборка приложения по флагам, без файла манифеста. Обязательны источник, команда запуска и среда выполнения (кроме standalone, где среда создаётся автоматически). Нужны права администратора. Все флаги этой команды разобраны в блоках Источники программы, Зависимости, Разрешения песочницы и Подпись, состав ПО и экспорт приложения.

generate-yaml#

aft-app generate-yaml [опции] - собрать из тех же флагов, что и package, готовый YAML-манифест и вывести его на экран или записать в файл через --out-yaml. Сборка не выполняется, права администратора не нужны.

analyze#

aft-app analyze [опции] - разобрать источник, не выполняя сборку: показать зависимости, подобрать среду выполнения по их покрытию и предложить разрешения песочницы. Права администратора не нужны. Подробнее - в блоке Предварительный анализ.

import-manifest#

aft-app import-manifest <манифест> [опции] - перенести манифест flatpak-builder на среды Astra: по каждому модулю решить, даёт ли его среда выполнения, можно ли поставить его deb-пакетом или нужно собрать из исходников. Результат выдаётся планом, манифестом AFT, скриптом сборки или готовой сборкой. Права администратора не нужны. Команду можно сокращать до import. Подробнее - в блоке Импорт манифестов flatpak-builder.

validate#

aft-app validate <файл.yaml> - проверить манифест на ошибки. Код возврата 0 означает, что ошибок нет. Что именно проверяется - в блоке Манифест приложения.

generate-manifest#

aft-app generate-manifest - открыть интерактивный генератор манифеста в браузере. Тот же генератор вызывается глобальным флагом -G.

clean#

aft-app clean - очистить кэш сборки (по умолчанию ~/.cache/aft-app).

help#

aft-app help [команда] - справка, при необходимости по конкретной команде.

Права и журналирование#

Сборка (build и package) меняет систему и репозиторий, поэтому требует прав администратора. Анализ источника, импорт манифеста flatpak-builder, проверка и генерация манифеста прав администратора не требуют. Подробность вывода настраивается флагами --verbose (или -v), --quiet (-q) и --log-level со значениями debug, info, warn, error.