1.
Debian GNU/Linux включает в себя пакетную систему DEB
3+APT
4
и инсталлятор промышленного уровня D-I, позволяющий гибко управлять
составом устанавливаемого программного обеспечения, ходом инсталяции и
вводить, при необходимости, новый функционал.
|
5
6
7.
Например udeb не содержит changelog, лицензию, документацию (в
частности man-страницы) или md5-сумму. Причина -необходимость
минимизировать размер, так как инсталяция проходит целиком в RAM, а
раздел подкачки может быть доступен только после Фазы 4 (разметки
разделов).
Дополнительноое отличие -udebs не поддерживают
деинсталяцию и обновление. Несоответствие Policy обозначает то, что
udeb’ы бессмысленно ставить на обычную систему, есть возможность
сломать зависимости и переписать существенные для нормального
функционирования файлы.
Для разработчика, знакомого ( начинающие могут ознакомится с
8
) с процессом создания пакетов Debian, создание udeb не составит
никаких сложностей. Требуется помнить о размере и стараться
поддерживать размер пакета минимальным.
Далее на примерах будут показаны отличия udeb от стандартного пакетирования Debian.
9 собирать udeb (а не обычный пакет).
Поле XB-Installer-Menu-Item
регулирует порядок включения в процесс установки. Например, если мы укажем номер меню больший, чем у пакета finish-install, то наш пакет не выполнится по умолчанию (не будет запущен debian/postinst ).
Вы также можете смешивать объявления deb и udeb в одном файле (пакет util-linux, пример дан с сокращениями):
Source: util-linux |
5. Включает в себя описание пункта для меню:
debian-installer/<component>/title |
Может также включать дополнительные записи, предназначенные для хранения настроек и сообщений.
Template: miu/server-uri |
10)
Рассмотрим их подробнее.
11 :
- обширная (и запутанная -прим. авт.) система настроек через переменные окружения Shell
- позволяет изготавливать и официальные, и неофициальные сборки Debian
- полный контроль над содержимым установочного образа
- требует высокой квалификации пользователя
simple-cdd
12 :
- интуитивно понятная конфигурация
- профили проектов-возможность создать несколько наборов конфигураций спиcок желаемых пакетов
- возможность задать ответы инсталятору (preseed)
- кэширование зеркала перед сборкой ISO
- раздельное задание источников для компонент инсталятора и устанавливаемых пакетов
Simple-cdd
является надстройкой над debian-cd
5.
preseed
10 -текстовый файл с ответами на вопросы debconf и имеет следующий вид:
# setting the default params |
Имя preseed-файла передајтся как параметр при загрузке ядра, может
быть локальным или URL. Примеры для различных типов инсталяции:
preseed/url=http://host/path/to/preseed.cfg |
Параметры preseed могут быть заданы как вручную (из приглашения загрузчика), так и используя DHCP.
Особо следует отметить специальный язык описания разделов для утилиты разметки дисков partman:
d-i partman-auto/expert_recipe strin \ |
В preseed-файл также могут включаться ответы на вопросы
устанавливаемых приложений. К примеру OEM инсталяция может
подразумевать начальное конфигурирование сервера samba или
автоматический ответ «да» на вопрос о принятии лицении Sun Java JRE.
13 предназначен для создания LiveCD на базе Debian. Возможности:
- сборка образа в несколько этапов
- полное конфигурирование каждого из этапов
- создание ISO, netboot и USB-_ash образов плагины и хуки
- поддержка сжатых и шифрованных файловых систем
- добавление сторонних пакетов и репозиториев, как на фазе настройки
- сборочного окружения, так и на фазе распаковки ПО
- настройка загрузчиков
- добавление любых дополнительных файлов, в том числе и перезаписывающих (особенно полезно для конфигурирования
) существующие в пакетах, устанавливаемых в образ
- интеграция с инсталляторами Debian и Ubuntu (создание инсталляционных дисков, совмещјнных с livecd)
Проект хорошо документирован и быстро развивается
|
13. Были внесены некоторые изменения в конфигурацию по умолчанию.
- LiveCD/con_g/binary, настройки бинарной стадии сборки:
LH_BINARY_IMAGES="iso" |
Задан загрузчик и дополнительные параметры к загрузке, и тип образа.
- LiveCD/con_g/chroot, фаза развјртывания системы
LH_CHROOT_FILESYSTEM="squashfs" |
Заданы пакет с ядром и дополнительные пакеты, требуемые для работы
live-cd. В частности ftp-сервер для закачки контента, mc (mcedit) для
управления файлами и редактирования конфигурации.
- LiveCD/con_g/chroot_local-includes/etc/ -сюда были положены
некоторые файлы, которыми мы дополняем стандартную конфигурацию,
например генератор конфигурации Xorg и конфигурационный файл vsftpd. - LiveCD/con_g/chroot_sources/xyz-player.chroot -дополнительный APT репозиторий, содержащий 3rd-party пакеты, не являющиеся частью Debian:
deb http://mend0za.xyz.com/debian-aw-display/ ./ |
Сборка реализована как набор правил, включенных в общий Makefile проекта 5.1.
livecd-repo: $(BUILD_DIR)/$(PLAYER_PACKAGE) $(BUILD_DIR)/$(SWFDEC_PACKAGE) |
Отдельно следует отметить скорость создания LiveCD на основе уже
имеющейся инфраструктуры CDD. Используя готовые схемы сборки 3rd-party
пакетов deb и CDD (через simple-cdd), дополнительные правила для сборки
LiveCD созданы и отлажены за 3 человеко-дня, включая стадию контроля
качества (QA) и передачу результата работы (ISOобраза) заказчику.
14 (NAS) для i386
Портирование существующего продукта с Alt Linux/XScale на Debian/i386.
Техническое задание:
- Управление функциями NAS через EVMS
15 - Поддержка до 4 винчестеров на стадии инсталяции
- Пользовательский интерфейс (GUI) на WEB+Java
- Портирование функционала с Alt Linux на Debian
Реализация.
- Пересборка ядра/модулей ядра в D-I и образов инсталятора
- Накладывание набора (порядка 15) патчей на ядро
- Замена стандартного менеджера разделов в D-I (partman) на NAS-специфичный
- Пакетирование пользовательского интерфейса
- Добавление поддержки EVMS в D-I
Отличие от проектов, указанных выше (см. 5.1, 5.2, 5.3) -в
необходимости глубокой интеграции с Debian-Installer, вплоть до
модификации штатного ядра и замены штатного менеджера дисков.
Функционал продукта полностью базируется на использовании EVMS. Все
операции с дисковой подсистемой проводятся через Device Mapper
16
+ EVMS. D-I на момент начала работы над проектом содержал только
рудиментарные признаки поддержки EVMS, ранее не используемые и
исключјнные из релизов незадолго до выхода Sarge.
Детали реализации:
- заново создан пакет evms-udeb, дающий возможности управлять evms из D-I (библиотеки и утилиты командной строки)
- компонент partman полностью заменјн на partman-evms, вводящий функционал определения всех доступных дисков и развјртывания
NAS-массива с их использованием - частично портированы части старого инсталятора из Alt Linux,
касающиеся развјртывания NAS и добавлены утилиты (awk), необходимые
для их работы в среде D-I. - GUI перепакетирован из RPM в DEB
- портированы патчи с устаревших версий ядра на современные (касающиеся особенностей функционала продукта)
- D-I полностью пересобран с модифированным ядром
18
17 для получения дополнительной информации.
partman-evms/debian/postinst содержит код переразбиения
дисков согласно штатной разметки NAS как группы RAID-1 разделов на всех
существующих дисках. Также осуществляются действия стандартного
partman: форматирование разделов, создание /etc/fstab, подключение
свопа.
Вся дальнейшая установка (базовая система, пост-инсталяционные настройки) уже работает с корневым разделом под управлением EVMS.
Часть из используемых пакетов проекта требует ответов пользователя
по ходу их установки. Средствами добавления preseed в simple-cdd мы
можем заранее задать ответы на них и сохранить инсталяцию «молчаливой»:
# omit questions to user |