From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Novodvorsky To: devel@altlinux.ru Message-ID: <20010802115616.A10830@linux.ru.net> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i Organization: Nidderholl's Debian Machine X-fingerprint: 538C 881F 96C0 BC17 6745 4803 40EA 4049 C894 1ACC X-URL: http://people.debian.org/~nidd/ Subject: [devel] dumby Sender: devel-admin@linux.iplabs.ru Errors-To: devel-admin@linux.iplabs.ru X-BeenThere: devel@linux.iplabs.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: devel@linux.iplabs.ru List-Help: List-Post: List-Subscribe: , List-Id: IPLabs Linux Team Developers mailing list List-Unsubscribe: , List-Archive: X-Original-Date: Thu, 2 Aug 2001 11:56:17 +0400 Date: Thu, 2 Aug 2001 11:56:17 +0400 Archived-At: List-Archive: List-Post: Привет! Некоторым известно, а некоторым еще нет, я работаю над новым вариантом установщика. Он лежит в CVS в модуле dumb-installer. Вчера ночью я написал описание к этому делу, надеюсь это кого-то заинтересует. Жду ваших коммитов и горячего обсуждения моего дизайна dumb (dumb дизайна?). Вот сам спек ------------------------- Dumby -- прототип нового модульного установщика 1. Цели ------- * Прозрачность кода * Малая требовательность к аппаратному обеспечению компьютера * Модульность программы установки 2. Устройство установщика ------------------------- После загрузки ядра из init загружается компонент dumby, main-menu. Это основная часть установщика, она загружает другие компоненты. При составлении прототипа, была определены следующие шаги, которые должен выполонить установщик: * Разбить диск(и) на разделы * Достать базовую систему [1] из источника * Распаковать базовую систему в нужные разделы Все эти шаги были распределены на подзадачи, которые выполняют отдельные компоненты. [1] Базовая система, это файлы, содержащиеся в пакетах от которых зависит пакет basesystem. 3. Компоненты Dumby ------------------- Каждый компонент Dumby кроме main-menu состоит из программы и файла опсания вида: Name: dumby-component Description: Component of dumby Depends: another-dumby-component one-another-dumby-component Provides: common-dumby-component Command: /usr/share/dumby/dumby-component/dumby-component Поле Name содержит кодовое название компонента, Description, его описание, которое будет выдано пользователю. Некоторые шаги установщика не могут быть выполнены без других шагов, например, распаковка базовой системы не может быть выполнена до разбивки диска. Поле Depends содержит кодовые названия шагов от которых зависит данный шаг. Поле Command содержит команду, которая загрузит программу данного шага. 5. Приемники, иначе ``retrievers'' ---------------------------------- Так как источники базовой системы могут быть самые разные, то надо реализовать некоторый единый интерфейс с ним. Работа с приемниками разделена на две части -- настройка приемников и работа приемника. На этапе настройки пользователь выбирает нужныйему приемник и настраивает его. Рассмотрим пример ftp-приемника. При его настройке, пользователю нужно настроить сеть и выбрать сервер-источник. Работу ftp-приемника можно описать так: (cd /target; wget -O - ftp://source.host/path/to/$1.tgz | tar -zx) 4. Описание компонентов Dumby ----------------------------- 4.1 main-menu ------------- Программа этого компонента обрабатывает файлы описания компонентов, составляет список доступных на текущий момент шагов и дает пользователю выбрать один из них. 4.2 partitioner --------------- Name: partitioner Description: Partition the harddisk Depends: На этом шаге пользователь разбивает диск/диски. Сначала ему выдается перечень дисков в компьютере, и он выбирает тот, который хочет разбить на разделы. Затем загружается программа для разбивки дисков [1]. Состояние компонента: еще не написан [1] Скорее всего это будет cfdisk 4.3 partition-config -------------------- Name: partition-config Description: Configure partitions Depends: partitioner На этом шаге пользователь выбирает точки монтирования разделов и раздел(ы) swap. 4.4 network-config ------------------ Name: network-config Description: Configure Network Depends: drivers-config 4.5 drivers-config ------------------ Name: drivers-config Description: Configure Drivers Depends: retrierver-config Зависит от retriever-config, так как надо откуда-то брать драйверы. На данный момент взят modconf из debian. 4.4 ftp-retriever-config ------------------------ Name: ftp-retriever-config Description: Configure ftp retriever Provides: retriever-config Depends: network-config partition-config 4.5 cdrom-retriever-config -------------------------- Name: cdrom-retriver-config Description: Configure cdrom retriever Provides: retriever-config Depends: partition-config 4.6 floppy-retriever-config --------------------------- Name: floppy-retriever-config Description: Configure floppy retriever Depends: partition-config Provides: retriever-config 4.7 {http,ssh,etc}-retriever-config ----------------------------------- Name: {http,ssh,etc}-retriever-config Description: Configure {http,ssh,etc} retriever Provides: retriever-config Depends: partition-config 4.8 bootloader-inst ------------------- Name: bootloader-inst Description: Configure and install bootloader Depends: partition-config 4.9 reboot ---------- Name: reboot Description: Reboot the system 5. Tasklist ------------ Для начала нужны следующие работующие компоненты: main-menu, partitioner, partition-config, cdrom-retriever-config, bootloader-inst, reboot (;-)). После того, как их удастся соединить вместе, будет готовый installer с CD. _______________________________________________ Devel mailing list Devel@linux.iplabs.ru http://www.logic.ru/mailman/listinfo/devel