Собери себе Ubuntu
Содержание
Вот вам способ создать свой индивидуальный вариант Ubuntu, включающий только нужные вам пакеты.
Отредактировано в соответствии с требованиями к пересборке Ubuntu 9.10
1. Получение ISO-файла
Для пересборки Ubuntu нужен образ Desktop CD> который запускается в Live-режиме. Последнюю стабильную версию можно скачать с http://releases.ubuntu.com/gutsy/. Скачайте образ ubuntu-7.10.-desktop-i386.iso, запишите его в свою домашнюю директорию и переименуйте в gutsy.iso.
2. Монтирование образа
Образ CD нужно подмонтировать к файловой системе. Откройте терминал и, переключившись на администратора (sudo su), введите следующее:
cd /home/UserName/ mkdir loop mount -o loop gutsy.iso ./loop
Теперь содержимое gutsy.iso доступно в /home/UserName/loop. Нам нужно скопировать его в нашу файловую систему, так что создайте директорию и скопируйте все содержимой вот так:
mkdir ubuntu-rebuild rsync -ax ./loop/. ./ubuntu-rebuild
После этого директория ubuntu-rebuild будет содержать файлы с диска. Теперь можно отмонтировать ISO-образ
umount ./loop
3. Подготовка
Далее необходимо распаковать сжатую файловую систему с CD Ubuntu; для этого используем SquashFS, представленную в Ubuntu в пакете squashfs; вам также необходимо установить squashfs-tools. Сжатая файловая система подмонтируется так:
mount ubuntu-rebuild/casper/filesystem.squashfs loop -t squashfs -o loop
Теперь в /home/UserName/loop находится содержимое сжатой файловой системы Ubuntu - той, что используется, когда вы загружаетесь в режиме LiveCD. Скопируйте её в новый каталог вашей домашней директории:
mkdir ubuntu-source rsync -av loop/. ubuntu-source umount ./loop
mount -t proc /proc ./ubuntu-source/proc mount -t sysfs /sys ./ubuntu-source/sys mount -o bind /dev ./ubuntu-source/dev
4. Изменение пакетов
Ура: теперь все на своих местах! Теперь немного поколдуем для переключения на файлы дистрибутива, как будто мы его и запустили. За это надо сказать спасибо маленькому инструменту chroot: он меняет восприятие корневой файловой системы, и можно "притвориться", что вы находитесь в другом дистрибутиве. Введите следующие команды - первая из них настраивает сетевое соединение внутри файловой системы Ubuntu:
cp /etc/resolv.conf ubuntu-source/etc/ chroot ubuntu-source
Теперь вы находитесь внутри каталога ubuntu-source, как если бы он был корневым (/). Вы запустили тот же дистрибутив, который идет на Live CD, но теперь его можно изменять! Не рекомендуется удалять пакеты, если вы точно не уверены, что делаете; некоторые являются зависимостями для критичных системных пакетов. Но вы можете начать добавление программ с помощью apt-get - например, чтобы добавить abiWord в вашу систему:
Перед началом изменений содержимого диска создайте контрольную сумму оригинального диска
dbus-uuidgen > /var/lib/dbus/machine-id
Теперь можете приступать к добавлению программ и обновлению системных пакетов
aptitude upgrade
apt-get install abiwordaptitu
Добавляем русификацию и удаляем "ненужные" языки:
aptitude install ubuntu-restricted-extras language-support-ru language-support-extra-ru language-pack-ru language-pack-gnome-ru language-support-translations-ru openoffice.org-l10n-en-gb gnome-user-guide-en openoffice.org-help-en-gb openoffice.org-l10n-en-za openoffice.org-hyphenation openoffice.org-hyphenation-en-us openoffice.org-thesaurus-en-au openoffice.org-thesaurus-en-us language-pack-ru openoffice.org-l10n-ru openoffice.org-help-ru language-pack-gnome-ru gnome-user-guide-ru language-support-writing-ru language-pack-ru openoffice.org-thesaurus-ru language-pack-kde-ru
Программы, добавленные на этой стадии, будут присутствовать на финальном CD/DVD, когда мы его пересоберем. Так что вы можете добавить Xfce, если это ваше любимое окружение рабочего стола, или пакет "build-essentrial", если ван нужен GCC и иже с ним, готовое к запуску.
aptitude clean
И последняя операция
rm /sbin/initctl dpkg-divert --rename --remove /sbin/initctl
5. Обновление
Закончив, наберите exit, чтобы покинуть файловую систему Ubuntu и вернуться в свой обычний дистрибутив.
umount ./ubuntu-source/sys umount ./ubuntu-source/proc umount ./ubuntu-source/dev
Теперь надо сгенерировать список файлов, имеющихся в обновленном образе Ubuntu. Для этого наберите следующую команду-монстр:
chroot ubuntu-source dpkg-query -W --showformat='${Package} ${Version}\n' | grep -v deinstall> ubuntu-rebuild/casper/filesystem.manifest
Необходимо также сказать установщику Ubuntu, когда он запустится, чтоб игнорировал определенные пакеты. Например, после инсталляции иконка "Установить Ubuntu" на рабочем столе вам уже ни к чему! Итак, пробежимся по списку инсталлируемых файлов (при помощи sed) и удалим компоненты исключительно для Live CD:
cat > /tmp/sedscript << END /casper/d /libdebian-installer4/d /os-prober/d /ubiquity/d /ubuntu-live/d /user-setup/d END sed -f /tmp/sedscript < ubuntu-rebuild/casper/filesystem.manifest-desktop
Сконфигурируем зону времени
dpkg-reconfigure tzdata
Быстрая русификация
locale-gen ru_RU.utf8 update-locale LANG=ru_RU.utf8 LANGUAGE=ru_RU.utf8 LC_ALL=ru_RU.utf8
Сделаем русский язык выбранным по умолчанию (в меню)
sudo aptitude install dpkg-dev uck apt-get source gfxboot-theme-ubuntu gfxboot cd gfxboot-theme-ubuntu*/ make DEFAULT_LANG=ru sudo cp -af boot/* ../ubuntu-rebuild/isolinux/
6. Зачитска
Теперь удалим ненужные и временные конфигурационные файлы
rm ubuntu-source/etc/resolv.conf rm ubuntu-source/var/lib/dbus/machine-id
и скопируем обновленные ядра в casper
sudo cp ubuntu-source/boot/vmlinuz-2.6.15-26-k7 ubuntu-rebuild/casper/vmlinuz sudo cp ubuntu-source/boot/initrd.img-2.6.15-26-k7 ubuntu-rebuild/casper/initrd.lz
7. Ремастеринг
Теперь нам нужно пересобрать образ файловой системы SquashFS - это займет до получаса...
mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -noappend
Далее обновим контрольную сумму MD5 для подтверждения целостности диска:
cd ubuntu-rebuild && find . -type f -print0 | xargs -0 md5sum > md5sum.txt cd ..
И наконец, команда mkisofs создаст нам сияюще-новый ISO-образ:
mkisofs --iso-level 4 -r -V "My Modified Ubuntu" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o newubuntu.iso ubuntu-rebuild
Если все прошло "на ура", то вы теперь имеете файл newubuntu.iso, который можно прожечь на CD-R (или, если он больше 700 МБ, на DVD). Но помните, что если образ больше 2 ГБ, у вас будут проблемы с запуском.
Статья написана по материалам журнала LinuxFormat Октябрь 2007.
дополнительно
openoffice.org-l10n-en-gb gnome-user-guide-en openoffice.org-help-en-gb openoffice.org-l10n-en-za openoffice.org-hyphenation openoffice.org-hyphenation-en-us openoffice.org-thesaurus-en-au openoffice.org-thesaurus-en-us language-pack-ru openoffice.org-l10n-ru openoffice.org-help-ru language-pack-gnome-ru gnome-user-guide-ru language-support-writing-ru language-pack-ru openoffice.org-thesaurus-ru