И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024)

Материал из 0x1.tv

(перенаправлено с «20241005H»)
Докладчик
Антон Мидюков.jpg
Антон Мидюков

Нововведения в инструментарии сборки дистрибутивов ОС «Альт» за 2020-2024

Видео

Презентация

И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf

Thesis

За прошедшие пять лет с момента предыдущего доклада по mkimage-profiles было немало важных изменений.

Чтобы поддерживать несколько бранчей была введена переменная BRANCH (дефолтное значение соответствует бранчу хоста). Кроме того, это позволило удобно подключать нужный apt.conf в зависимости от заданного бранча, настроив

   /.mkimage/profiles.mk.

Сборка initrd и добавление ядер в iso образы была перенесена из mkimage в mkimage-profiles. Были сделаны фичи initrd-propagator (для p10) и initrd-bootchain (замена propagator для p11, sisyphus). Теперь initrd собирается самим make-initrd, все модули прописываются в initrd.mk, больше никакого full.cz не собирается, на выходе обычный initrd.img.

Появилась возможность собирать iso-образы с несколькими ядрами.

Isolinux стал legacy, по дефолту в iso-образах используется grub-pc. Для isolinux было невозможно реализовать возможность выбора ядер при загрузке. Это пришлось бы делать на уровне gfxboot, который требует поддержку графики.

Поддержка rEFInd для загрузки iso в режиме EFI была прекращена. Вместо него используется grub-efi. Это позволило поддерживать загрузку в EFI в текстовом режиме и через последовательную консоль, а также использовать один конфиг grub для legacy и uefi, реализовать поддержку выбора ядер.

Для каждой стадии сборки готовятся списки rpm и srpm пакетов и сохраняются в .disk/ у iso, и в /root/.install-logs/ у rootfs и контейнеров. Что позволяет легко отслеживать изменения пакетной базы и выявлять баги.

Каждый iso теперь частично самодокументируется. В .disk/ есть такие файлы: mkinitrd (команда для сборки initrd) и initrd.mk (конфиг для сборки initrd.img).

Появилась возможность использовать классический инсталлятор из live. Это цель use/live-install для установки распаковкой live. При этом «лишние» пакеты удаляются (те, что уже есть в live). Если добавить цель use/live-install/pkg, то установка будет происходить аналогично install2 из пакетов.

Появилась возможность использовать режим rescue в обычном live. Для этого нужно задействовать цель use/live/rescue. При этом в live должна использоваться система инициализации systemd, а в kernel cmdline будет прописан параметр systemd.unit=rescue.target.

Таким образом, стало возможным собирать дистрибутивы с одним сквошом live вместо трёх, что сильно уменьшает размер образа в современных реалиях.

Появился OEM-режим установки для altinst use/install2/oem и для live use/live-install/oem.

Главным нововведением для нового стабильного бранча p11 стало изменение системы загрузки первой стадии (initrd) у iso-образов с propagator на make-initrd-bootchain-altboot, о котором вскользь упоминалось вначале.

Об этом будет подробно в докладе.

И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024)!.jpg

Примечания и ссылки