d5a5941f96
This is quite a large-scale change since mkimage-profiles got used to baking distributions over the last year, and virtual environments are quite different, so e.g. image.in/Makefile had to be split in two with the main part of it moved into features.in/iso/lib/. Short overview: - features.in/Makefile: lib/ support (supporting VE images requires dynamic modifications to image.in/Makefile before starting the build; the most natural way to achieve that seems to use features mechanism along with makefile include dir) - packaging format related part moved into features.in/pack (should be better prepared for diversity either) - features.in/iso renamed to features.in/build-distro - features.in/ve renamed to features.in/build-ve + NB: these could not be merged as e.g. features.in/build due to completely different script hooks - lib/image.mk renamed to lib/build.mk - image, config, log postprocessing moved downstream - added a sort of a topping in the form of lib/sugar.mk - assorted style fixups (like ifeq usage) - clean.mk: reliability fix (the problem was observed by Oleg Ivanov and me too but finally it did get the attention quantum) - reviewed, updated and extended docs + QUICKSTART: should be[come] a step-by-step guide (thanks Leo-sp50 for prodiving feedback)
77 lines
4.9 KiB
Plaintext
77 lines
4.9 KiB
Plaintext
Welcome to mkimage-profiles!
|
||
|
||
English quickstart: make distro/server-base.iso;
|
||
see http://en.altlinux.org/Hasher (and a large tmpfs).
|
||
|
||
Configurables: ~/.mkimage/profiles.mk;
|
||
see doc/profiles.mk.sample and libdistro.mk
|
||
|
||
License: GPLv2+, see COPYING.
|
||
|
||
Most docs in Russian, welcome to learn it or ask for English.
|
||
См. тж. http://www.altlinux.org/Mkimage/Profiles/next
|
||
|
||
Концепция:
|
||
- метапрофиль служит репозиторием для построения индивидуального
|
||
профиля, по которому создаётся итоговый дистрибутив
|
||
- для одноразовых модификаций можно подправить сгенерированный
|
||
профиль, для долгосрочной разработки стоит вливать правки
|
||
в метапрофиль (что требует больше навыков и времени)
|
||
|
||
Особенности:
|
||
- метапрофиль может быть полностью read-only при сборке
|
||
- для сборки подыскивается предпочтительно tmpfs
|
||
- в профиль копируются только нужные объекты;
|
||
он автономен относительно метапрофиля
|
||
|
||
Стадии работы:
|
||
- инициализация дистрибутивного профиля
|
||
- сборка конфигурации дистрибутива
|
||
- наполнение дистрибутивного профиля
|
||
- сборка дистрибутива
|
||
|
||
Объекты:
|
||
- виртуальные окружения:
|
||
+ описываются в lib/ve.mk
|
||
+ могут основываться одно на другом
|
||
- дистрибутивы:
|
||
+ описываются в lib/distro.mk
|
||
+ могут основываться один на другом
|
||
+ включают один или более субпрофилей по надобности
|
||
+ желательно избегать множественного наследования, см. тж. фичи
|
||
- субпрофили:
|
||
+ список собирается в $(SUBPROFILES)
|
||
+ базовые комплекты помещены в подкаталогах под sub.in/;
|
||
их наборы скриптов могут расширяться фичами
|
||
- stage1: propagator, ядро инсталятора и initrd в т.ч. с firmware
|
||
- stage2: базовый live-образ (и модули ядра, соответствующие stage1);
|
||
используется только с модификаторами (см. соответствующие фичи):
|
||
+ stage2/install2: инсталятор
|
||
+ stage2/live: LiveCD
|
||
+ stage2/rescue: спасательная система
|
||
- main: пакетная база к инсталяции (обязательная и дополнительная)
|
||
- фичи:
|
||
+ список собирается в $(FEATURES)
|
||
+ законченные блоки функциональности (или наборы таковых)
|
||
+ описываются в индивидуальных features.in/*/config.mk
|
||
+ могут требовать другие фичи, а также субпрофили
|
||
+ при сборке $(BUILDDIR) содержимое указанных в $(FEATURES) фич
|
||
(подкаталоги, соответствующие входящим в дистрибутив субпрофилям
|
||
под их итоговыми названиями -- например, live, а не stage2/live)
|
||
добавляется в профиль; затем выполняются generate.sh, generate.mk
|
||
- списки пакетов (*_LISTS): просьба по возможности избегать дублирования;
|
||
NB: перечисленные в этих переменных файлы автоматически копируются
|
||
в порождаемый профиль => не следует указывать пакаджлисты напрямую
|
||
- индивидуальные пакеты (*_PACKAGES): следует крайне осторожно пользоваться
|
||
SYSTEM_PACKAGES -- эти пакеты попадут во все стадии, в том числе в образ
|
||
чувствительной к объёму install2 (в stage1 -- только в инструментальный
|
||
чрут); применяйте для того, что обязано быть и в инсталяторе, и в готовой
|
||
системе -- и не путайте с COMMON_PACKAGES (main, live, rescue)
|
||
|
||
Результат:
|
||
- при успешном завершении сборки образ называется сообразно
|
||
дистрибутиву и укладывается в $(IMAGEDIR):
|
||
+ указанный явно,
|
||
+ либо ~/out/ (если возможно),
|
||
+ или $(BUILDDIR)/out/ иначе
|