Пересборка Ubuntu Desktop (вольный перевод оригинальной статьи): различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Как кастомизировать Ubuntu Desktop CD?)
(Custom Background for GNOME)
 
(не показано 16 промежуточных версий этого же участника)
Строка 21: Строка 21:
 
Это руководство для десктопного LiveCd. Для других видов CD есть соответствующие страницы: [https://help.ubuntu.com/community/InstallCDCustomization Alternative Install Cd], [https://help.ubuntu.com/community/InstallCDCustomization Server Install Cd].
 
Это руководство для десктопного LiveCd. Для других видов CD есть соответствующие страницы: [https://help.ubuntu.com/community/InstallCDCustomization Alternative Install Cd], [https://help.ubuntu.com/community/InstallCDCustomization Server Install Cd].
  
Также, по ссылке [https://help.ubuntu.com/community/LiveCDCustomizationFromScratch without using an existing LiveCd] находится руководство по созданию LiveCd без использования существующего LiveCd.
+
Также, по ссылке [https://help.ubuntu.com/community/LiveCDCustomizationFromScratch вот этой] находится руководство по созданию LiveCd без использования существующего LiveCd.
 +
 
 +
=Системные требования=
 +
 
 +
#Как минимум 3-5 GB свободного места
 +
#Как минимум 512 MB ОЗУ и 1 GB swap (рекомендуется)
 +
#Пакет squashfs-tools
 +
#Пакет '''genisoimage''', который обеспечивает наличие команды '''mkisofs'''
 +
#Ядро Ubuntu с поддержкой squashfs (присутствует начиная с Ubuntu 6.06 и выше)
 +
#Опционально, какой-нибудь гипервизор, для тестирования нового LiveCD (QEMU/KVM, VirtualBox или VMware)
 +
 
 +
 
 +
'''Примечание 1:'''
 +
При кастомизации 9.10 Karmic Koala (или выше) в окружении 9.04 Jaunty Jackalope (или ниже), инструмент squashfs-tools должен быть обновлен до версии 4.0.
 +
И наоборот - инструмент squashfs-tools в Ubuntu 9.10 не совместим с более ранними версиями Ubuntu.
 +
 
 +
'''Примечание 2:'''
 +
Архитектура операционной системы (Amd64 или i386), которая будет на итоговом LiveCD должна быть такой же, как архитектура платформы, на которой выполняется кастомизация, в противном случае загрузка с LiveCD будет невозможно. Например, использование операционной системы архитектуры i386 для сборки LiveCD архитектуры  AMD64, задача нетривиальная.
 +
 
 +
=Установка необходимых инструментов=
 +
 
 +
#Убедитесь, что установлены необходимые инструменты
 +
sudo aptitude install squashfs-tools genisoimage
 +
 
 +
=Получение базовой системы=
 +
 
 +
#Загрузить официальный ISO-образ десктопной системы можно с [http://releases.ubuntu.com/ http://releases.ubuntu.com].
 +
 
 +
'''Примечание:''' В примере, показанном здесь, используется образ под названием '''ubuntu-9.04-desktop-i386.iso'''. Замените его на имя конкретно вашего iso-образа. Например, если ваш образ называется ubuntu-11.04-desktop-i386.iso, то команда:
 +
mv ubuntu-9.04-desktop-i386.iso ~/livecdtmp.
 +
 
 +
должна быть изменена на:
 +
mv ubuntu-11.04-desktop-i386.iso ~/livecdtmp
 +
 
 +
Переместите или скопируйте его в пустую директорию
 +
 
 +
mkdir ~/livecdtmp
 +
mv ubuntu-9.04-desktop-i386.iso ~/livecdtmp
 +
cd ~/livecdtmp
 +
 
 +
==Извлечение содержимого iso-образа==
 +
 
 +
Монтирование iso-образа:
 +
 
 +
mkdir mnt
 +
sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt
 +
 
 +
Извлечение содержимого iso-образа в директорию '''extract-cd'''
 +
 
 +
mkdir extract-cd
 +
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
 +
 
 +
==Извлечение системы==
 +
 
 +
Извлечение файловой системы SquashFS
 +
 
 +
sudo unsquashfs mnt/casper/filesystem.squashfs
 +
sudo mv squashfs-root edit
 +
 
 +
==Подготовка и chroot==
 +
 
 +
Если необходима поддержка сетевого соединения
 +
 
 +
sudo cp /etc/resolv.conf edit/etc/
 +
 
 +
В зависимости от вашей конфигурации, возможно, понадобится скопировать hosts-файл
 +
 
 +
sudo cp /etc/hosts edit/etc/
 +
 
 +
sudo mount --bind /dev/ edit/dev
 +
sudo chroot edit
 +
mount -t proc none /proc
 +
mount -t sysfs none /sys
 +
mount -t devpts none /dev/pts
 +
 
 +
(это монтирования важных директорий вашей хостовой системы - если вы решите удалить директории внутри директории edit/, то убедитесь, что отмонтировали эти директории, в противном случае ваша система станет непригодной для использования, по крайней мере до перезагрузки)
 +
 
 +
Чтобы избежать проблем с локалью и для того, чтобы импортировать ключи GPG
 +
 
 +
export HOME=/root
 +
export LC_ALL=C
 +
 
 +
=Кастомизация=
 +
 
 +
==Apt-get==
 +
 
 +
===Приготовления===
 +
 
 +
В 9.10, установкой или обновлением пакетов, необходимо выполнить команды
 +
 
 +
dbus-uuidgen > /var/lib/dbus/machine-id
 +
 
 +
и
 +
 
 +
dpkg-divert --local --rename --add /sbin/initctl
 +
ln -s /bin/true /sbin/initctl
 +
 
 +
===Управление пакетами===
 +
 
 +
Для просмотра установленных пакетов по размеру выполните
 +
 
 +
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less
 +
 
 +
Если вы захотите удалить пакет, то используйте purge
 +
 
 +
aptitude purge имя-пакета
 +
 
 +
=Кастомизация бекграундов GNOME=
 +
 
 +
Обысно файлы background находятся в /usr/share/backgrounds. Скопируйте ваши png файлы сюда, найтройте хозяина и доступ на них, затем отредактируйте файлы:
 +
 
 +
#/usr/share/gnome-background-properties/ubuntu-wallpapers.xml и
 +
#/usr/share/gconf/defaults/16_ubuntu-wallpapers или другие файлы в этой директории путём изменения строки /usr/share/backgrounds/warty-final-ubuntu.png на ту, которая будет указывать на ваш файл
 +
 
 +
В конце концов можно отредактировать такие файлы как: /var/lib/gconf/debian.defaults/%gconf-tree.xml or /etc/gconf/gconf.xml.defaults/%gconf-tree.xml).

Текущая версия на 12:49, 8 января 2014

Оригинальная статья: https://help.ubuntu.com/community/LiveCDCustomization

Зачем кастомизировать LiveCD-дистрибутивы?

Затем, чтобы:

  • сделать собственный Linux/Ubuntu дистрибутив
  • показать конкретное программное обеспечение
  • перевести на определенный язык
  • добавить или удалить пакеты программного обеспечения
  • обновить пакеты программного обеспечения
  • изменить системные умолчания (темы, иконки, фон рабочего стола, панели, домашнюю страницу браузера, и т.д.)

Как кастомизировать Ubuntu Desktop CD?

Самый простой способ создать кастомный LiveCD - это использование инструмента Ubuntu Customization Kit.

Ниже в данной статье следует подробное описание другого способа, менее простого, но дающего аналогичный результат (переводчик сочинил это предложение сам.).

Вы возможно также захотите создать LiveCD из существующей инсталляции. Для этого случая подойдет инструмент Remastersys.

Это руководство для десктопного LiveCd. Для других видов CD есть соответствующие страницы: Alternative Install Cd, Server Install Cd.

Также, по ссылке вот этой находится руководство по созданию LiveCd без использования существующего LiveCd.

Системные требования

  1. Как минимум 3-5 GB свободного места
  2. Как минимум 512 MB ОЗУ и 1 GB swap (рекомендуется)
  3. Пакет squashfs-tools
  4. Пакет genisoimage, который обеспечивает наличие команды mkisofs
  5. Ядро Ubuntu с поддержкой squashfs (присутствует начиная с Ubuntu 6.06 и выше)
  6. Опционально, какой-нибудь гипервизор, для тестирования нового LiveCD (QEMU/KVM, VirtualBox или VMware)


Примечание 1: При кастомизации 9.10 Karmic Koala (или выше) в окружении 9.04 Jaunty Jackalope (или ниже), инструмент squashfs-tools должен быть обновлен до версии 4.0. И наоборот - инструмент squashfs-tools в Ubuntu 9.10 не совместим с более ранними версиями Ubuntu.

Примечание 2: Архитектура операционной системы (Amd64 или i386), которая будет на итоговом LiveCD должна быть такой же, как архитектура платформы, на которой выполняется кастомизация, в противном случае загрузка с LiveCD будет невозможно. Например, использование операционной системы архитектуры i386 для сборки LiveCD архитектуры AMD64, задача нетривиальная.

Установка необходимых инструментов

  1. Убедитесь, что установлены необходимые инструменты
sudo aptitude install squashfs-tools genisoimage

Получение базовой системы

  1. Загрузить официальный ISO-образ десктопной системы можно с http://releases.ubuntu.com.

Примечание: В примере, показанном здесь, используется образ под названием ubuntu-9.04-desktop-i386.iso. Замените его на имя конкретно вашего iso-образа. Например, если ваш образ называется ubuntu-11.04-desktop-i386.iso, то команда:

mv ubuntu-9.04-desktop-i386.iso ~/livecdtmp.

должна быть изменена на:

mv ubuntu-11.04-desktop-i386.iso ~/livecdtmp

Переместите или скопируйте его в пустую директорию

mkdir ~/livecdtmp
mv ubuntu-9.04-desktop-i386.iso ~/livecdtmp
cd ~/livecdtmp

Извлечение содержимого iso-образа

Монтирование iso-образа:

mkdir mnt
sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt

Извлечение содержимого iso-образа в директорию extract-cd

mkdir extract-cd
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Извлечение системы

Извлечение файловой системы SquashFS

sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit

Подготовка и chroot

Если необходима поддержка сетевого соединения

sudo cp /etc/resolv.conf edit/etc/

В зависимости от вашей конфигурации, возможно, понадобится скопировать hosts-файл

sudo cp /etc/hosts edit/etc/
sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

(это монтирования важных директорий вашей хостовой системы - если вы решите удалить директории внутри директории edit/, то убедитесь, что отмонтировали эти директории, в противном случае ваша система станет непригодной для использования, по крайней мере до перезагрузки)

Чтобы избежать проблем с локалью и для того, чтобы импортировать ключи GPG

export HOME=/root
export LC_ALL=C

Кастомизация

Apt-get

Приготовления

В 9.10, установкой или обновлением пакетов, необходимо выполнить команды

dbus-uuidgen > /var/lib/dbus/machine-id

и

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

Управление пакетами

Для просмотра установленных пакетов по размеру выполните

dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less

Если вы захотите удалить пакет, то используйте purge

aptitude purge имя-пакета

Кастомизация бекграундов GNOME

Обысно файлы background находятся в /usr/share/backgrounds. Скопируйте ваши png файлы сюда, найтройте хозяина и доступ на них, затем отредактируйте файлы:

  1. /usr/share/gnome-background-properties/ubuntu-wallpapers.xml и
  2. /usr/share/gconf/defaults/16_ubuntu-wallpapers или другие файлы в этой директории путём изменения строки /usr/share/backgrounds/warty-final-ubuntu.png на ту, которая будет указывать на ваш файл

В конце концов можно отредактировать такие файлы как: /var/lib/gconf/debian.defaults/%gconf-tree.xml or /etc/gconf/gconf.xml.defaults/%gconf-tree.xml).