Пакеты, SDK и точки расширения

Пакеты, SDK и точки расширения#

После создания базовой системы в неё ставятся пакеты, формируется (по желанию) SDK-вариант и объявляются точки расширения - места, куда позже можно подключить расширения.

Пакеты среды#

Пакеты для среды добавляются флагом --package <пакет> (или -p, повторяемо). Это набор библиотек, который получат все приложения, работающие на этой среде. В манифесте им соответствует список packages.runtime.

SDK#

SDK - это среда для сборки приложений: к обычной среде добавляются заголовочные файлы, компиляторы и инструменты разработки.

  • --sdk (или -S) - дополнительно собрать SDK-вариант.

  • --sdk-package <пакет> - пакет, устанавливаемый только в SDK (повторяемо).

Идентификатор SDK выводится из идентификатора среды по соглашению Flatpak: у среды с именем, оканчивающимся на .Platform, окончание заменяется на .Sdk, у остальных .Sdk дописывается в конец. Так среда org.astralinux.Platform даёт org.astralinux.Sdk, а среда org.astra.Qt даёт org.astra.Qt.Sdk.

В манифесте пакеты только для SDK задаются списком packages.sdk. Среда и её SDK экспортируются в репозиторий как две отдельные ссылки и не перекрывают друг друга.

Точки расширения#

Среда может объявлять точки расширения. Точка - это объявленное хостом место, в которое монтируется расширение (например, языковой пакет или драйверы). Само расширение собирается отдельно инструментом aft-extension (см. раздел Создание расширений (aft-extension)), а среда лишь объявляет, что такая точка существует.

Точки описываются в манифесте, в секции extensions. У каждой точки задаются имя и каталог монтирования, а при необходимости - поддерживаемые версии, признак набора локалей, добавление пути к библиотекам и другие параметры. Полный перечень полей - в блоке Манифест среды выполнения.

extensions:
  - name: org.astralinux.Platform.Locale
    directory: share/runtime/locale
    locale-subset: true

Чтобы расширение подключилось, его ветка при сборке должна совпадать с версией, объявленной у точки расширения.