И снова об mkimage-profiles — инструментарий сборки дистрибутивов ОС «Альт» (Антон Мидюков, OSSDEVCONF-2024) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (Новая страница: «;{{SpeakerInfo}}: {{Speaker|Антон Мидюков}} <blockquote> </blockquote> {{VideoSection}} {{vimeoembed||800|450}} {{youtubelink|}} {{SlidesSection}}…») |
StasFomin (обсуждение | вклад) |
||
(не показана одна промежуточная версия этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Антон Мидюков}} <blockquote> Нововведения в инструментарии сборки дистрибутивов ОС «Альт» за 2020-2024 </blockquote> {{VideoSection}} {{vimeoembed|1022635200|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]] |
Текущая версия на 19:38, 23 октября 2024
- Докладчик
- Антон Мидюков
Нововведения в инструментарии сборки дистрибутивов ОС «Альт» за 2020-2024
Содержание
Видео
Презентация
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, о котором вскользь упоминалось вначале.
Об этом будет подробно в докладе.