Состав среды выполнения#
Команда aft-sbom-generator собирает состав ПО по содержимому готовой rootfs среды выполнения. Она читает базу установленных пакетов внутри rootfs, поэтому применяется к собранной системе, а не к установленному Flatpak-приложению.
Как это применяется#
Состав собирается по пути к rootfs и идентификатору среды:
aft-sbom-generator <путь-к-rootfs> org.astralinux.Platform
В результат попадает по записи на каждый установленный пакет: имя, версия, архитектура, лицензия, сопровождающий, контрольная сумма и идентификатор PURL.
Опции#
--version <версия>(или-v) - версия среды, встраиваемая в метаданные (по умолчанию 1.0.0).--arch <арх>(-a) - архитектура (по умолчанию amd64).--description <текст>(-d) - описание среды; при отсутствии определяется по идентификатору.--base-image <образ>(-b) - имя базового образа; при отсутствии определяется по идентификатору.--output <путь>(-o) - путь к выходному файлу.--format <формат>(-f) - формат вывода; поддерживается cyclonedx-json.--quiet(-q) - тихий режим.--help(-h) - справка.
Где сохраняется результат#
По умолчанию файл кладётся внутрь самой rootfs, в
/usr/share/sbom/<идентификатор>-<версия>.cdx.json, а его копия сохраняется в
/tmp на машине, где идёт сборка, для быстрого просмотра. Произвольный путь
задаётся флагом --output; тогда копия в /tmp всё равно создаётся.
Этот же состав формируется автоматически при сборке среды инструментом
aft-runtime (см. Создание сред выполнения (aft-runtime)), но кладётся в другое место:
/usr/share/runtime/<идентификатор>-<версия>.cdx.json, и копия в /tmp при
этом не создаётся. Инструменты AFT читают оба расположения, так что на работу
поиска уязвимостей и сравнения зависимостей это не влияет. Отдельный запуск
aft-sbom-generator нужен для уже готовой rootfs, которую не собирал aft-runtime.
О структуре итогового документа - в блоке Формат и использование.