Собираем свой дистрибутив с Calculate Linux Scratch::Журнал СА 12.2009
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6157
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6868
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4151
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2981
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3785
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3793
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6288
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3139
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3440
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7252
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10622
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12339
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13974
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9104
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7058
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5368
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4598
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3405
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3136
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3383
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3003
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Собираем свой дистрибутив с Calculate Linux Scratch

Архив номеров / 2009 / Выпуск №12 (85) / Собираем свой дистрибутив с Calculate Linux Scratch

Рубрика: Администрирование /  Серверная

 СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и 4 книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

Собираем свой дистрибутив
с Calculate Linux Scratch

Практически каждый пользователь Linux хоть раз да собирал свой дистрибутив. Разработчики Calculate Linux предлагают свой вариант.

Необходимость иметь свой вариант системы для системного администратора, да и обычного пользователя может быть продиктована многими факторами. Среди главных – удобство развертывания, когда в устанавливаемой системе присутствуют все необходимые приложения, последние версии ядра и системных библиотек, модули локализации, драйвера и так далее.

В Microsoft, кстати, это тоже отлично понимают, и корпорация предлагает средства пересборки системы – пакет автоматической установки Windows (Windows Automated Installation Kit) [1] и Microsoft Deployment Toolkit.

Конечно же, Linux развивается несколько иным путем, дистрибутивы выходят гораздо чаще Windows и собираются по другому принципу. Хотя не все релизы считаются стабильными и рекомендуются разработчиками к промышленному применению. А при массовом развертывании на предприятии используются стабильные релизы, рекомендуемые разработчиками, например Ubuntu LTS (Long Term Support).

Очевидно, это одна из причин, по которой в Linux большее распространение получили системы автоматической инсталляции, например, такие как – Kickstart. При помощи подготовленного Kickstart-файла можно установить дистрибутив с заданными параметрами и набором приложений. Изначально Kickstart появился в RedHat, и сегодня используется его многочисленными клонами и некоторыми другими дистрибутивами вроде Ubuntu. Пересборка системы производится в основном энтузиастами и для собственных нужд. А в инструментарии большинства дистрибутивов мы не найдем удобных средств для этого.

Здесь можно отметить Ubuntu Customization Kit (UCK) [2] и rBuilder, средство сборки дистрибутива rPath [3]. Конечно, есть Linux From Scratch, который хотя и пользуется некоторой популярностью, но вряд ли может послужить средством массового применения.

Основой Calculate Linux [4], о котором уже говорилось на страницах журнала [5], послужил Gentoo. До недавнего времени развивались две основные ветки – серверная CDS (Calculate Directory Server) и для настольных систем CLD (Calculate Linux Desktop). Последняя была представлена в двух вариантах с разными рабочими столами: CLD это KDE 4.x и CLDX – XFCE 4.6.х.

Недавно в семействе Calculate Linux появился совершенно новый вариант Calculate Linux Scratch (CLS) – представляющий собой LiveCD, предназначенный для самостоятельной сборки системы под любые задачи. Идея, в общем, проста – вместо готовых сборок, в которых часто нет необходимого конкретному пользователю софта, дать удобный инструмент позволяющий создать нужное решение самостоятельно.

История появления CLS проста. Вначале была собрана информация о том, что не устраивает пользователей Gentoo в других бинарных дистрибутивах, построенных на Gentoo, в частности Calculate и Sabayon. Выяснились две причины: отсутствие нужного софта и отсутствие сборки Calculate Linux с рабочим столом GNOME.

В итоге оптимальный дистрибутив, устраивающий всех, должен был содержать только те программы и библиотеки, которые будут установлены в большинстве случаев – XOrg, Firefox, библиотеки, системные утилиты, драйвера. Так, собственно, и выглядит CLS.

Первая CLS-версия под номером 9.8 вышла в августе 2009 года. Главная особенность – появление режима интерактивной сборки системы, позволяющего внести изменения в состав дистрибутива. Причем сразу стало доступно два варианта: CLS и CLSG.

Версия CLSG содержит облегченную среду Gnome (gnome-base/gnome-light), менеджер сеансов GDM и Wicd для графической настройки проводных и Wi-Fi-сетей (всего приблизительно на 80 пакетов больше CLS). Дистрибутив выпущен под две архитектуры i686 и x86_64.

Первоначально CLS ориентировался именно на стороннего пользователя, сами же разработчики не планировали использовать его для сборки Calculate Linux. Но результат заставил пересмотреть это мнение, и теперь CLS является основной для всех будущих версий Calculate Linux, как серверных, так и настольных. Ведь CLS может выступать при сборке в роли stage3, содержит portage и базовый софт, а все что отличается в USE-флагах (например, в KDE-версии) при необходимости пересобирается, но таких пакетов достаточно мало.

Так, если при стандартной сборке Gentoo (и CLS) команда «emerge -e system» выполняется дважды, то далее уже в этом нет необходимости, а значит, экономятся время и ресурсы. Кроме того, учитывая достаточно небольшой состав приложений, для самостоятельной сборки CLS не требуется больших ресурсов. Продолжая ежемесячный цикл выпуска новых версий, последние два релиза дистрибутива (август и сентябрь) были именно CLS/CLSG.

В середине сентября появился следующий релиз CLS 9.9, в котором:

  •  перешли на файловую систему Aufs2;
  •  сохранена 100-процентная совместимость с Gentoo (по сути, Calculate уже практически является частью Gentoo, оверлей помещен в layman, ebuild calculate2 планируется перенести в портежи);
  •  используется ядро gentoo-sources;
  •  поддерживается установка на USB-Flash и на HDD/USB-HDD (с файловой системой: ext4, ext3, ext2, reiserfs, xfs и jfs);
  •  появилась новая утилита cl-unmask, предназначенная для размаскировки пакетов;
  •  обновлены X.Org 7.4, Kernel 2.6.30.5, Firefox 3.5.3, Gnome 2.24.1 (в CLSG).

 Размер образа:

  •  CLS 9.9: i686 – 573 Мб, x86_64 – 629 Мб;
  •  CLSG 9.9: i686 – 651 Мб, x86_64 – 709 Мб.

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

Чтобы воспользоваться режимом интерактивной сборки, следует установить дистрибутив на жесткий диск с параметром --build либо выбрать режим загрузки Builder в загрузочном меню LiveCD. В этом случае файловая система после загрузки системы будет состоять из трех слоев aufs2 (Advanced Multi Layered Unification File System, представляет собой усовершенствованную реализацию файловой системы Unionfs 2):

  • calculate – первый слой, являющийся образом системы, загружаемой с носителя (livecd.squashfs), и смонтированный в режиме «только для чтения». Это основа будущего дистрибутива, которую можно менять;
  • delta – слой, в котором сохраняются все изменения, произведенные во время сборки;
  • workspace – рабочий слой, в котором производятся все манипуляции по изменению исходной системы.

Рисунок 1. В загрузочном меню Calculate Linux Scratch выбираем Build

Рисунок 1. В загрузочном меню Calculate Linux Scratch выбираем Build

Все указанные слои являются подкаталогами в /mnt/scratch и автоматически образуются после загрузки системы.

# mount | grep /mnt/scratch

tmpfs on /mnt/scratch/delta type tmpfs (rw,relatime)

tmpfs on /mnt/scratch/workspace type tmpfs (rw,relatime)

/dev/loop0 on /mnt/scratch/calculate type squashfs (ro,relatime)

Собственно, по наличию каталога /mnt/scratch и определяется текущий режим работы системы (в нашем случае Builder).

Переходим в режим интерактивной сборки, введя в консоли cl-builder, после выполнения команды приглашение изменит цвет. Вся дальнейшая работа в текущей виртуальной консоли будет производиться в chroot-окружении /mnt/builder. Теперь можно работать как обычно в Gentoo – обновить портежи, устанавливать, обновлять программы. Здесь необходимо сделать важное замечание. В обычном режиме слои монтируются в таком порядке: calculate + delta + workspace, в интерактивном – calculate + delta.

После установки каждого пакета (завершения выполнения emerge) скрипт cl-builder выполняет команду «mount -o remount», перемонтируя заново слой delta. В итоге все изменения в delta сразу же становятся доступными в основной системе (например, появляются ярлыки приложений) и их можно протестировать перед сборкой нового образа. Запуск приложения в chroot-окружении приводит к созданию нежелательных временных файлов, которые затем попадают в образ. Именно поэтому во избежание конфликтов в работе устанавливаемых программ установку и удаление пакетов следует производить только в chroot-окружении через cl-builder, а тестировать в обычном.

Рисунок 2. В Calculate 1.2.6 необходимо закомментировать строчку

Рисунок 2. В Calculate 1.2.6 необходимо закомментировать строчку

Обновляем утилиту calculate.

# layman -S; emerge calculate

Обновляем портежи (в принципе релизы CLS выходят раз в месяц и этот шаг можно пропустить):

# eix-sync

И устанавливаем нужное приложение:

# emerge weechat

По окончании сборки программа будет сразу же доступна в рабочей системе. В слое delta появятся новые файлы и библиотеки. Аналогичным образом добавляем и остальные приложения. По окончании работы выходим из режима сборки командой exit.

Теперь чтобы собрать загрузочный ISO-образ, достаточно смонтировать раздел жесткого диска (если объема ОЗУ достаточно, этот шаг можно пропустить):

# mount /dev/sda3 /usr/calculate/share/linux

И затем собираем образ командой:

# calculate --iso

Через некоторое время в каталоге /usr/calculate/share/linux появится ISO-образ с новой системой.

# ls /usr/calculate/share/linux/

cls-9.9-i686.iso cls-9.9-i686.iso.DIGESTS

Еще важный момент. Если CLS для сборки установлен на флешку (calculate -d /dev/sdX), можно пересобрать оригинальный файл livecd.squashfs, в котором, собственно, и находится система, сохранив изменения. Для этого достаточно ввести команду:

# calculate --rebuild

Новый файл будет иметь другой порядковый номер сборки. При следующей загрузке будет уже использован новый образ со всеми изменениями.

Следует заметить, что полученный в интерактивном режиме дистрибутив подходит для массового пользователя, но считается не совместимым с Calculate Directory Server (CDS). Чтобы собрать совместимый с CDS вариант, необходимо использовать обычный режим сборки.

Рисунок 3. Подготавливаем систему к сборке

Рисунок 3. Подготавливаем систему к сборке

Обычный режим сборки

Чтобы использовать обычный режим сборки системы, следует установить Calculate Linux (любую версию CLS/CLSG, CLD, CLDX или CDS) на жесткий диск обычным образом. Затем копируем в каталог /usr/calculate/share/linux установленной системы ISO-образ CLS оригинальный (если нужна оригинальная версия системы, предложенная разработчиками) или созданный нами в интерактивном режиме.

Вначале следует приготовить систему для сборки командой calcalute, запустив ее с параметром:

# calculate -c/--configure

По умолчанию будет производиться сборка текущей версии системы, то есть если работаем в CLS, то и собираться будет CLS. Чтобы указать другой вариант дистрибутива, добавляем параметр –s/--os=[CLD|CLDX|CLS|CLSG|CDS]. И готовим систему к сборке, например CLDX.

# layman -S; emerge calculate

# calculate -c -s CLDX

Building Calculate Linux Desktop

Collecting system information

  Language: en_US

  Keymap: en_US

  Timezone: UTC

  Computer name: calculate

  Network devices: eth0 (DHCP)

Hardware

  Machine hardware name: i686

  Quantity processors: 1

  Create directory stages...  done.

В текущей версии скрипта calculate (1.2.6) не убраны проверки наличия архивов stage3 и portage, которые требовались ранее для сборки системы. Так, если в процессе появится сообщение:

To continue copy file "stage3-i686-YYYYMMDD.tar.bz2" to directory "/usr/calculate/share/stages".

Значит в /usr/calculate/share/linux недоступен ISO-образ. Проверяем:

# ls /usr/calculate/share/linux/

cls-9.9-i686.iso

Второе возможное сообщение требует архив с portage.

To continue copy file "portage-YYYYMMDD.tar.bz2" to directory "/usr/calculate/share/snapshots".

Для всех систем, кроме CDS и CLS, в stage3 и portage нет необходимости, их заменяет сам CLS. Для этих двух систем уже понадобятся последние версии архивов с stage3 и portage. В будущей версии 1.2.8 проверку наличия portage для настольных версий систем обещают убрать (в GIT уже исправления присутствуют). Если это так, можно обновить вручную оверлей Сalculate командой eix-sync (в ходе выполнения configure обновляются оверлей и утилита calculate).

Рисунок 4. Проверка зависимостей

Рисунок 4. Проверка зависимостей

Как вариант лучше изменить сам скрипт, закомментировав одну строку в разделе «Определим наличие stage, portage» (строка 1828):

# "Определим наличие stage, portage"

if(!$data{portage} && !defined $data{arg}{'vars'}){

printmes("\n");

printmes(gettext('To continue copy file'));

printmes(" \"portage-YYYYMMDD.tar.bz2\"\n");

 printmes(gettext('to directory')); printmes(" \"$data{portagepath}\".\n");

beep();

# Комментируем строку с exit

#                      exit;

}

После этого подготовка системы к сборке должна пройти без проблем. Если ввести команду «calculate -c» в режиме Builder, получим сообщение:

rmdir: failed to remove `/mnt/builder': Device or resource busy

Смотрим:

# mount | grep /mnt/builder

none on /mnt/builder type aufs (rw,relatime,si=150eca98)

/usr/calculate/share on /mnt/builder/usr/calculate/share type none (rw,bind)

none on /mnt/builder/proc type proc (rw)

/dev on /mnt/builder/dev type none (rw,bind)

/dev/pts on /mnt/builder/dev/pts type none (rw,bind)

При конфигурировании ISO-образ CLS будет распакован в свободный дисковый раздел (специально, чтобы было легко чистить временные файлы), который автоматически форматируется в ReiserFS и монтируется в /mnt/builder.

# mount | grep /mnt/builder

/dev/sda3 on /mnt/builder type reiserfs (rw)

Если скрипт не сможет определить раздел самостоятельно, его следует указать при помощи параметра -d.

В процессе работы команды будет изменен файл /mnt/builder/etc/make.conf в соответствии с настройками выбранной системы, в частности USE-флаги, языковые настройки. Сравним оригинальный make.conf с CLS и образовавшийся после ввода «calculate -c -s CLDX»:

# diff /etc/make.conf /mnt/builder/etc/make.conf

7c7

< CFLAGS="-O2 -march=i686 -pipe"

---

> CFLAGS="-Os -march=i686 -pipe"

28c28

<   gtk

---

>   gtk -eds -gnome -kde

40c40

< LINGUAS="en ru"

---

> LINGUAS="en de es fr it pl pt_BR ru uk"

42c42

< PKGDIR="/usr/calculate/share/packages/CLS/9.9/i686"

---

> PKGDIR="/usr/calculate/share/packages/CLDX/9.9/i686"

После обновления портежей и выполнения команды «emerge sys-apps/portage» скрипт закончит этап подготовки. Cостав пакетов, которые будут установлены, можно просмотреть при помощи:

# calculate –l

Правим при необходимости /mnt/builder/etc/make.conf (man make.conf) и переходим к шагу проверки и размаскировки зависимостей, для чего используем ключ -D/--dependence.

# calculate -D

По окончании – самый долгий этап – сборка системы при помощи ключа -m/--make:

# calculate –m

Все новые пакеты пересобираются с флагом --newuse, то, что есть, пропускается. По окончании упаковываем дистрибутив в архив (7z) командой:

# calculate -p

И создаем ISO-образ:

# calculate --iso -s cld

Результат сборки системы можно увидеть в каталоге /usr/calculate/share/linux/.

***

В итоге сборка системы при помощи Calculate Linux Scratch выглядит на порядок проще и происходит быстрее, чем сборка того же Gentoo. Путем довольно нехитрых манипуляций можно получить на выходе готовый дистрибутив под свои задачи.

Приложение

Новое в Calculate Linux

С момента выхода первой статьи в Calculate Linux появилась поддержка «из коробки» DNS- и DHCP-серверов, в качестве реализации выбраны BIND и dhcpd. Соответственно, добавлены и новые утилиты:

  • Для управления DNS – cl-dns-recadd, cl-dns-recdel, cl-dns-recmod, cl-dns-zoneadd, cl-dns-zonedel, cl-dns-zonemod.
  • Для управления DHCP – cl-dhcp-hostadd, cl-dhcp-hostdel, cl-dhcp-hostmod, cl-dhcp-netadd, cl-dhcp-netdel, cl-dhcp-netmod.

Установка и управление заданными сервисами осуществляется также просто. Например, чтобы установить DNS, используем команду:

cl-setup dns

Во время установки DHCP сразу задаются параметры работы при помощи такой команды:

cl-setup --router <ip шлюза> --dnames <имена доменов> --range <диапазон ip> --net <ip сети с маской /24> --dnsip <ip DNS сервера> dhcp

Плюс полезная утилита cl-unmask, предназначенная для размаскировки пакетов, которая является альтернативой autoumnask. Формат вывода прост:

# cl-unmask package1 package2

Файл размаскировки создается для всех версий включая последнюю.

  1. Яремчук С. Основные изменения в WAIK для Windows Server 2008 R2/7. //Системный администратор, №4, 2009 г. – С. 16-19.
  2. Ubuntu Customization Kit – http://uck.sourceforge.net.
  3. rPath rBuilder – http://www.rpath.org.
  4. Сайт проекта Calculate Linux – http://www.calculate-linux.ru.
  5. Яремчук С. Строим сеть на Calculate Directory Server. //Системный администратор, №8, 2009 г. – С. 16-22.

Комментарии отсутствуют

Добавить комментарий

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

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru