Собираем собственный дистрибутив на базе Debian 6

Не дают мне покоя лавры Попова. Сегодня будем собирать свою уникальную операционную систему. Надеюсь это оценят ведущие программисты страны. Если серьезно, то будем собирать Live дистрибутив на базе Debian 6. В качестве основного (и единственного) окружения рабочего стола будем использовать wmii. Устанавливаем debian и wmii по этому топику.



Редактируем:

/etc/apt/sources.list

Добавляем:

deb http://live.debian.net/ squeeze-snapshots main contrib non-free
deb-src http://live.debian.net/ squeeze-snapshots main contrib non-free


Обновляем информацию о репозитариях, устанавливаем live-build:

apt-get update && apt-get install live-build


Создаем директорию, например, live в домашней директории:

mkdir ~/live
cd ./live


Создаем директорию auto:

mkdir auto


Создаем скрипт-обертку auto/config:

#!/bin/sh

lb config noauto \
   --username user \
   --hostname mtaalamu \
   --architecture i386 \
   --linux-flavours 686 \
   --debian-installer live \
   --bootappend-live "locales=en_US.UTF-8 keyboard-layouts=us" \
   --archive-areas "main contrib non-free" \
   --packages-lists "standard-x11" \
   --tasks "standard laptop" \
   --packages "virtualbox-ose-guest-utils virtualbox-ose-guest-dkms trayer lxterminal lxappearance gigolo pcmanfm shutter gqview gimp inkscape vlc evince brasero pidgin chromium-browser wicd xsane rcconf vim gzip bzip2 p7zip unrar-free mc cmus htop testdisk fsarchiver gparted lvm2 mdadm" \
  "${@}"


Т.е. наш дистрибутив будет представлять собой минимальный Debian 6 +
нужный нам софт. wmii в списке пакетов нет, так как deb пакет с версией 3.9.2 я собрал сам.

Создаем auto/build:

#!/bin/sh

lb build noauto "${@}" 2>&1 | tee binary.log


Создаем auto/clean:

#!/bin/sh

lb clean noauto "${@}"
rm -f config/binary config/bootstrap \
  config/chroot config/common config/source
rm -f binary.log


Назначаем права на исполнение:

chmod 755 auto/config
chmod 755 auto/build
chmod 755 auto/clean


Создаем директорию config:

mkdir config


В директории config/chroot_local-includes будут храниться файлы, которые заменят стандартные при сборке дистрибутива. Нам нужны настройки wmii — wmiirc.

mkdir -p config/chroot_local-includes/etc/X11/wmii/
cp /etc/X11/wmii/wmiirc config/chroot_local-includes/etc/X11/wmii/


Мой wmiirc при старте запускает trayer — утилиту для отображения иконок свернутых программ. Также запускается setxkbmap для переключения раскладок capslock'ом. Привожу начало wmiirc:

#!/bin/dash -f
# Configure wmii
wmiiscript=wmiirc # For wmii.sh
. wmii.sh

# Sergei_T
setxkbmap -option grp:caps_toggle,grp_led:scroll "us,ru"
killall -u $(getent passwd $UID | sed -e 's/\:.*//')  trayer
trayer --edge top --widthtype request --align right &


Собранный пакет с wmii помещаем в директорию config/chroot_local-packages. Все .deb пакеты, помещенные в данную директорию, будут установлены в конечном дистрибетиве.

Собираем наш дистрибутив так:

lb build


В последствии при сборке новых версий сначала чистим:

lb clean && lb build


Для сборки необходимо подключение к интернету, будут скачаны .deb пакеты, создана chroot с новым дистрибутивом, а потом это все упаковано в iso образ. Это в 2х словах.

На выходе получаем iso вида:

binary-hybrid.iso

live.debian.net/manual/en/html/live-manual.html
  • +1
  • 21 февраля 2011, 15:44
  • Sergei_T

Комментарии (4)

RSS свернуть / развернуть
+
0
Поздравляю, коллега ! А шапочка исошничек-то, извините, хде?
На мтааламовку хоть принеси, у меня теперь переностой DVD-привод есть, можно прямо в кафе переписать (если розетку найдем .
Там, надеюсь, загрузчик isolinux?
avatar

yababay

  • 21 февраля 2011, 16:23
+
0
Чуть попозже будет топик
avatar

Sergei_T

  • 21 февраля 2011, 16:40
+
0
ежли собирать gnome
первым делом надо --bootappend-live переключить на русский, а то гном будет на буржуйском языке
а вторым делом надо понять как сделать две разные раскладки русскую и англицкую
avatar

morozko77

  • 13 апреля 2011, 13:30
+
0
в целом я собирал не ради gnome, а ради wmii
avatar

Sergei_T

  • 13 апреля 2011, 14:18

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.