[sisyphus] Текстовый инсталлер

Michael Shigorin mike на osdn.org.ua
Вт Июл 31 20:05:19 MSK 2012


On Tue, Jul 31, 2012 at 02:19:15AM +0400, Денис Смирнов wrote:
>  MS> Никаких проблем сделать cpio в mkimage. :)
> $ make desktop-systemd.cpio
> ** ARCH: x86_64
> make[1]: *** No rule to make target `desktop-systemd.cpio'.  Stop.
> 
> Как это сделать? :)

Примерно так, только описав упаковку чрута в cpio:

--- a/conf.d/vm.mk
+++ b/conf.d/vm.mk
@@ -3,6 +3,7 @@ ifeq (vm,$(IMAGE_CLASS))
 
 # NB: use/x11 employs some installer-feature packages
 vm/icewm: vm/bare use/cleanup/installer use/x11/xdm +icewm; @:
+vm/desktop-systemd: vm/icewm use/systemd; @:
 
 vm/net: vm/bare use/vm-net/dhcp use/vm-ssh; @:

...и далее:

$ make ROOTPW=1 vm/desktop-systemd.img
** ARCH: x86_64
19:27:47 cleaning up (NB: DEBUG scope is limited when CLEAN is enabled)
19:27:47 initializing BUILDDIR: build/
19:27:47 preparing distro config: build/distcfg.mk
19:27:47 starting image build: tail -f build/build.log
19:29:18 done (1:30)
** image: ~/out/desktop-systemd-20120731-x86_64.img [604M]

Результат будет какое-то время доступен как
http://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/mkimage-profiles/systemd-tests/desktop-systemd-20120731-x86_64.img
-- если хочешь, посмотри, у меня с разными kvm -vga
экран получается чёрный/белый/в крапинку (+vmguest ситуацию
особо не меняет, добавляя специфические гостевые драйверы --
с ними примерно то же).  Но тут может мешать ssh -Y, а иначе
прямо сейчас проверить не особо получается.

> Задача -- сделать cpio-архив, в котором лежало бы то, что
> получилось бы после установки desktop-systemd. Понимаю что
> некоторые изменения делаются сейчас альтератором, фиг с ними
> пока.

Я ещё не делал в общем виде вынос конфигурации дистрибутивов
в отрыве от сборки образов именно дистрибутивов, так что прямо
сейчас придётся либо сделать это, либо воспроизвести цепочку
конфигурирования вплоть до и включая distro/desktop-systemd:

distro/desktop-systemd -> distro/icewm use/systemd
distro/icewm -> distro/.desktop-network use/lowmem +icewm
distro/.desktop-network -> distro/.desktop-mini +vmguest
distro/.desktop-mini -> distro/.desktop-base use/x11/xdm +power
distro/.desktop-base -> distro/.installer use/syslinux/ui/vesamenu use/x11/xorg

Т.е. всё вот это надо rebase-нуть с distro/.installer на vm/bare,
ну или построить vm/desktop-systemd на базе vm/icewm.

Ты же понимаешь, что distro и vm -- достаточно разные сущности,
чтобы у них количество субпрофилей было разным, для начала?..
Поэтому стоит по возможности ясно сформулировать задачки,
чтобы лучше разделять и реюзать компоненты.

Т.е.:
- задачка сборки дистрибутива означает сборку нескольких чрутов,
  их упаковку либо копирование как есть, прибавление загрузчика
  и финальную упаковку всего вместе;
- сборка ve требует сборки одного чрута без ядра и его упаковки
  (например, в cpio);
- сборка vm требует сборки одного чрута с ядром и его упаковки
  в формат диска виртуальных машин;
- сборка cpio для вашего инсталера требует сборки одного чрута
  с ядром и его упаковки в cpio.

Плюс к этому видится осмысленность разнесения "базовой"
конфигурации и того, поверх чего её потом укладывать --
пустого инсталера или пустого образа vm...

Озадачили, пошёл думать.

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


Подробная информация о списке рассылки Sisyphus