Источники базовой системы#
Сборка среды начинается с базовой системы - набора файлов, в который потом
ставятся пакеты. Базовую систему берут одним из трёх способов: собирают через
debootstrap, извлекают из Docker-образа или импортируют из готового rootfs. Тип
выбирается флагом --source (или -s); в манифесте - полем source.type
(см. Манифест среды выполнения).
Метаданные среды#
Независимо от источника задаются метаданные:
--id <id>(или-i) - идентификатор среды в формате reverse-DNS (например, org.astralinux.Platform).--version <версия>(-v) - версия среды (например, 1.8).--arch <арх>(-a) - архитектура: amd64 (по умолчанию), arm64, i386, armhf. Имена архитектур приводятся к формату Flatpak автоматически.--branch <ветка>(-B) - ветка OSTree при экспорте (по умолчанию stable).
debootstrap#
Сборка базовой системы из APT-репозитория.
--distribution <имя>(-d) - дистрибутив (например, astralinux).--mirror <url>(-m) - зеркало APT, из которого берётся система.--suite <suite>- suite для debootstrap. Если не задан, берётся значение дистрибутива; полезно, когда имена дистрибутива и suite различаются.--component <компонент>(-C) - компонент репозитория (повторяемо); например main, contrib, non-free.
Перед сборкой проверяется наличие свободного места.
aft-runtime create --id org.astralinux.Platform --version 1.8 \
--source debootstrap --distribution astralinux \
--package libc6 --package libglib2.0-0 --output ./repo
docker#
Извлечение файловой системы из Docker-образа.
--docker-image <образ>(-D) - ссылка на образ, напримерastralinux/alse:1.8.
Образ при необходимости скачивается, его содержимое становится базовой системой.
aft-runtime import --id org.astralinux.Platform --version 1.8 \
--docker-image astralinux/alse:1.8 --output ./repo
import#
Импорт из уже готовой системы.
--rootfs <путь>(-r) - путь к каталогу или архиву rootfs.
Настройка системы перед упаковкой#
После создания базовой системы и перед тем, как привести её к структуре среды, в систему можно внести изменения.
--add-repo <строка>- подключить дополнительный APT-репозиторий (повторяемо). Строка в формате APT, напримерdeb https://url suite main. Для репозитория с ключом в манифесте есть отдельная секция (см. Манифест среды выполнения).--post-install <команда>- выполнить команду в собираемой системе после установки пакетов (повторяемо); например генерацию локали.--env KEY=VALUE(-e) - задать переменную окружения в метаданных среды (повторяемо).
При установке пакетов кэш APT очищается. Флаг --clean-docs (-c)
дополнительно убирает документацию, man- и info-страницы, уменьшая размер среды.
Пакеты задаются отдельно и разобраны в блоке Пакеты, SDK и точки расширения.
Рабочие каталоги#
--work-dir <путь>(-w) - каталог для промежуточных артефактов (по умолчанию./build_dir).--output <путь>(-o) - путь к репозиторию OSTree (по умолчанию./repo).
При сборке нескольких сред из одного манифеста для каждой создаётся свой рабочий каталог.