Источники базовой системы#

Сборка среды начинается с базовой системы - набора файлов, в который потом ставятся пакеты. Базовую систему берут одним из трёх способов: собирают через 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).

При сборке нескольких сред из одного манифеста для каждой создаётся свой рабочий каталог.