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

Материал из 0x1.tv
Перейти к: навигация, поиск
(Новая страница: «;{{SpeakerInfo}}: {{Speaker|Антон Мидюков}} <blockquote> </blockquote> {{VideoSection}} {{vimeoembed||800|450}} {{youtubelink|}} {{SlidesSection}}…»)
 
;{{SpeakerInfo}}: {{Speaker|Антон Мидюков}}
<blockquote>
Нововведения в инструментарии сборки дистрибутивов ОС «Альт» за 2020-2024
</blockquote>

{{VideoSection}}

{{vimeoembed||800|450}}
{{youtubelink|}}

{{SlidesSection}}
[[File:И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

За прошедшие пять лет с момента [https://0x1.tv/20190828E предыдущего доклада] по <tt>mkimage-profiles</tt> было немало важных изменений.

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

    /.mkimage/profiles.mk.

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

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

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

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

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

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

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

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

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

Появился [https://www.altlinux.org/Installer/OEM OEM-режим установки] для altinst use/install2/oem и для live use/live-install/oem.

Главным нововведением для нового стабильного бранча p11 стало изменение системы загрузки первой стадии (initrd) у
iso-образов с <tt>propagator</tt> на <tt>[https://www.altlinux.org/Installer/common/altboot make-initrd-bootchain-altboot]</tt>, о котором вскользь упоминалось вначале. 

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

{{----}}
[[File:{{#setmainimage:И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

<references/>

[[Категория:OSSDEVCONF-2024]]
[[Категория:Open-source projects]]
[[Категория:Draft]]

Версия 14:13, 23 октября 2024

Докладчик
Антон Мидюков.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

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