Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Итоги конкурса Group-IB Итоги конкурса Group-IB
Настало время подведения итогов нашего конкурса, который мы проводили совместно с компанией Group-IB, специализирующейся на расследовании инцидентов информационной безопасности....
Трюки с phpinfo Трюки с phpinfo
Совсем недавно в паблике появилась информация о новом интересном подходе к эксплуатации уязвимостей класса LFI с помощью бесполезной на первый взгляд функции phpinfo() и временных загрузочных файлов. Берем на вооружение этот полезный прием....

Исполнители желаний: обзор конструкторов популярных Linux дистрибутивов

Bookmark and Share

Многообразие — блеск и нищета мира Linux. Distrowatch.com знает о 649 дистрибутивах (включая все респины) — но я уверен, что знает он все-таки не про все. А что, если среди этого великого множества нет того, который нужен именно тебе? Не беда! Всегда можно сделать свой дистр, причем не прилагая особых усилий.

Введение

Создание своего дистрибутива — дело затратное, хлопотное и не всегда оправданное. В отличие от создания респина — слегка модифицированной версии существующего дистрибутива. Для чего может понадобиться создавать свой респин? Допустим, если ты хочешь сделать LiveCD с немного другим набором ПО (те же кодеки, например), другим оформлением или просто хочешь иметь инсталлятор со всеми обновлениями.

Все средства для создания респинов можно условно разделить на 2 категории: веб и локальные. Локальные, в свою очередь, делятся на имеющих GUI и требующих вдумчивого чтения манов :). Из веб категории заслуживают внимания:

  • SUSE STUDIO — средство для создания респинов одноименного дистрибутива;
  • RECONSTRUCTOR — проект для создания респинов на основе Debian или Ubuntu;
  • INSTALINUX — инструмент для создания netinstall-систем на базе одного из шести дистрибутивов.

Из категории локальных приложений можно отметить:

  • UBUNTU CUSTOMIZATION KIT — GUI-прога для создания респинов Ubuntu;
  • RECONSTRUCTOR — офлайновая версия одноименного онлайного проекта;
  • REVISOR — GUI-прога для создания респинов Fedora;
  • LIVECD-CREATOR — CLI-прога для создания респинов Fedora.

Меняем цвет хамелеона

SUSE STUDIO — средство от Novell, позволяющее производителям ПО легко создавать законченные программные решения для потребителей. Пользователь программного решения просто запускает его в виртуальной машине (или с LiveCD/LiveUSB) и получает рабочее приложение без необходимости установки и настройки под него ОС (что поможет избежать многих ошибок).

Регистрация на сайте Suse Studio возможна только по инвайтам (благо, инвайт присылают быстро — мне пришел в течение часа). Логиниться на сайте можно по OpenID или используя аккаунт Google, Yahoo или Novell. После регистрации в системе для хранения своих сборок выделяется 15 Гб места. Сборка своего респина не вызывает затруднений и состоит из 4 шагов:

  1. Выбор имени и основы для респина. В качестве основы могут выступать OpenSuse 11.2, SUSE Linux Enterprise 10 и SUSE Linux Enterprise 11 как в 32-х, так и 64-х битном исполнении. В качестве DE можно выбрать Gnome, KDE или IceWM, или же вообще не использовать среду рабочего стола.
  2. Следующий шаг — выбор пакетов, из которых будет состоять наш респин. Радует, что система сама занимается разрешением зависимостей. На этой же странице можно подключить сторонние репозитории или загрузить отдельные RPM. В стандартных репозиториях OpenSuse есть около 8000 пакетов — в принципе, есть из чего выбрать. Удобно, что при выборе пакетов отображается размер как LiveCD, так и уже установленной системы.
  3. Третий шаг — конфигурация. На семи вкладках можно настроить практически все параметры системы: язык и часовой пояс, добавить юзеров, изменить лого или обои, сменить runlevel, настроить сервера БД (только MySQL и PostgreSQL), включить автологин и  добавить в автозапуск программы, настроить параметры виртуальной машины, задать скрипты, выполняющиеся при загрузке системы. Есть даже примитивные настройки файрвола.
  4. Собственно, выбор типа респина (LiveCD, образ HDD/Flash или образ виртуальной машины) и его сборка. Сама сборка проходит на удивление шустро — у меня это занимало от трех до десяти минут.

Но самая удобная, как мне показалось, фишка сервиса — это возможность протестировать только что созданный респин прямо в браузере (функция Testdrive). Для этого тебе на час выдается виртуальная машина KVM. Для более-менее нормальной работы этой функции нужен инет от 2 Мбит/с. К запущенному респину можно будет даже подключиться по ssh или vnc. Жаль, что исходящие соединения заблокированы :). Внесенные в процессе тестирования изменения можно будет сохранить с помощью функции "Modified Files", отображающей все измененные с момента запуска виртуалки файлы. В целом, Suse Studio производит впечатление простого, удобного, стабильного и, вместе с тем, достаточно гибкого инструмента. Этим объясняется относительно высокая популярность проекта — в неделю здесь собирают более 4000 респинов. Единственный минус (хотя, для кого как) — это ограниченность в выборе базового дистрибутива для сборки. В общем, must use для любителей Suse!

Ubuntu: реконструкция

Reconstructor, в отличии от предыдущего проекта, специализируется на Debian и Ubuntu. Проект "условно-платный" — после регистрации каждый месяц тебе начисляется $5, которые можно потратить на те или иные услуги проекта. Стоит отметить, что стоимость услуг довольно демократична (например, сборка проекта стоит$0,3), поэтому $5 в месяц особо фантазию не ограничивают. При желании, баланс можно в любой момент пополнить через PayPal.

При создании проекта на начальном этапе выбирается базовый дистрибутив (на момент написания статьи выбор состоял из Debian 5, Ubuntu 9.04 и 9.10 архитектур x86 и x86-64), DE (Gnome, KDE, Xfce или Text Only) и тип респина (LiveCD или образ диска). После создания проекта предлагается выбрать дополнительные пакеты из стандартного репозитория, входящие в твой респин (зависимости разрешаются, но это явно не отображается в списке установленных пакетов). К сожалению, размер добавляемых пакетов отображается без учета зависимостей, поэтому следить за размером конечного образа проблематично. Кроме пакетов из стандартного репозитория, к проекту можно добавлять различные модули, реализующие тот или иной функционал. Вот некоторые из них:

  • APT REPOSITORY И UBUNTU PPA REPOSITORY — позволяют добавить к проекту сторонний репозиторий. Правда, в списке доступных для установки пакетов пакеты из этих репозиториев не появятся, установку из них надо прописывать в специальный "Post Script";
  • INSTALL DEB PACKAGE — установить произвольный deb-пакет;
  • SYSTEM UPGRADE — позволяет провести апгрейд системы;
  • PRESEED — позволяет изменить Preseed-файл;
  • INSTALL FILE — позволяет загрузить файл в произвольное место в будущей ФС;
  • РАЗЛИЧНЫЕ МОДУЛИ ДЛЯ УЛУЧШЕНИЯ ВНЕШНЕГО ВИДА: задания темы, обоев, иконок, стартовой страницы Firefox и т.д.

После того, как все необходимые изменения внесены, можно начинать сборку проекта (кнопка "Build Project" в левом верхнем углу). Твое задание на сборку встанет в очередь, и через некоторое время (в зависимости от нагруженности сервиса и объема твоего задания) тебе на почту придет письмо об окончании процесса. Все мои проекты собирались от 10 минут до часа. Собранный проект можно скачать в течении семи дней, после он будет удален.

Примечательно, что исходники самого Reconstructor распространяются по лицензии GPLv3, поэтому ты вполне можешь сам поднять подобный сервис.

В целом, Reconstructor — хороший, хотя и не лишенный некоторых недостатков, сервис. В минусы можно записать ограниченность выбора базового дистрибутива, условную платность, невозможность вычисления конечного размера дистрибутива в процессе добавления пакетов.

Некоторые из этих недостатков призвана решить офлайн версия, которую можно скачать со странички www.reconstructor.org/projects/reconstructor/files. Причем доступны две редакции:

  • RECONSTRUCTOR ENGINE — данная версия позволяет собирать проекты, экспортированные из веб-интерфейса;
  • RECONSTRUCTOR — "полноценная" версия, имеющая все те же функции, что и веб-интерфейс, плюс еще несколько интересных.

Так как первая редакция — это, по сути, только локальный сборщик, обратим пристальное внимание на вторую. В отличие от веб-интерфейса, она позволяет с небольшой погрешностью отслеживать размер будущего респина. Кроме того, есть возможность запуска терминала в chroot-окружении будущей системы, что открывает практически неограниченные возможности по кастомизации. Потенциально интересна также экспериментальная функция запуска иксов в chroot (правда, как и положено экспериментальной функции, у меня она не заработала ни на одной из тестовых машин). Также, как и у веб-интерфейса, у офлайн версии есть модули — специальные скрипты на Bash, выполняющиеся перед окончательной сборкой системы. Еще из интересных функций присутствуют: возможность удалить с диска все Windows-приложения (Firefox, Thunderbird и т.д.) и возможность настройки запускающихся со стартом системы сервисов.

Мастер на все руки

Если два рассмотренных выше сервиса, в принципе, похожи друг на друга, то Instalinux отличается от них кардинально. Во-первых, никакой регистрации — просто заходи на сайт и начинай работать! Во-вторых, поддержка ряда крупных дистрибутивов: CentOS, Debian, Fedora, OpenSUSE, Scientific, Ubuntu. И, наконец, в-третьих, на выходе получится не традиционный LiveCD/инсталлятор, а netinstall-образ, который при установке скачивает все необходимое из инета.

Специальный мастер позволяет за 6 шагов задать основные параметры будущей системы. Кроме стандартных языка, раскладки и часового пояса можно определиться с разбивкой винта (либо разбивать винт автоматически, либо настраивать разбиение в процессе установки). Другой важный шаг — выбор пакетов, входящих в будущую систему. Пакеты можно выбирать как группами (ставя галочки в чекбоксах), так и поодиночке (прописывая названия пакетов в специальное поле). Последний шаг — задание рутового пароля (или пароля пользователя в случае с Ubuntu) и проверка конфигурации. После этого появится возможность скачать ISO. Размер образа может варьироваться в зависимости от дистрибутива. Например, образ Ubuntu с Xfce занимает всего чуть больше 12 Мб, а вот Fedora 12 с LXDE - целых 227 Мб (есть подозрение, что это, скорее, баг сервиса). Скорость скачивания образа не радует — у меня она не превышала 30 Кб/с, хотя при таких размерах это не критично. Кроме самого ISO, на странице загрузки можно скачать получившийся конфиг Preseed, Kickstart или AutoYaST.

Загрузившись с получившегося образа, набери Install для того, чтобы начать установку системы. Instalinux предлагает также воспользоваться более продвинутой версией мастера, имеющей возможность ручного редактирования получившегося Preseed/Kickstart/AutoYaST файла.

Кстати, разработчики обещают скорое появление поддержки профилей. В целом, приятный и полезный сервис. Если бы еще не ряд мелких недоработок! В частности, не очень проработана конфигурация CentOS (что признают сами разработчики сервиса). Например, у меня при нескольких конфигурациях при попытке установки системы выдавало: "Установочное дерево CentOS в этом каталоге не соответствует вашему загрузочному диску".

Даешь очередной *buntu!

Ubuntu customization kit — еще одна офлайновая прога для кастомизации самого популярного дистрибутива. С релиза jaunty входит в официальный репозиторий. Но все же лучше скачать последнюю версию с официального сайта. Для нормальной работы просит не менее 5 Гб свободного места в домашней папке и доступ в инет. Процесс создания респина состоит из следующих шагов:

  • Настройка доступных в системе, а также при запуске LiveCD, языков;
  • Выбор DE (варианты: kde, gnome, others). Можно ничего не выбирать — получим систему без DE;
  • На этом шаге надо указать системе на ISO-образ оригинальной Ubuntu (Kubuntu, Xubuntu, etc);
  • Выбор названия CD;
  • Хотим ли мы вручную настроить наш респин? Конечно хотим! Иначе получится стандартный дистрибутив;
  • Удалить ли все Windows-приложения с CD?
  • На следующем шаге можно запустить в chroot Synaptic, консоль или продолжить сборку дистрибутива. По умолчанию включены  только репозитории main и restricted, поэтому выбор пакетов довольно скуден. Чтобы поправить эту ситуацию, в Synaptic, в меню Settings-Repositories, нужно включить репозитории universe и multiverse и обновить список пакетов. Если есть желание более тонко настроить систему (например, сменить обои у LiveCD) — можно запустить консоль в chroot. Небольшой совет: выходить из консоли надо командой exit, а не просто закрывая терминал — иначе проект рискует не собраться.
  • Когда все настройки закончены, можно смело жать "Continue building". Дальше все зависит от мощности твоего компа — у меня на ноуте все собралось минут за 10.

Федорино горе

Для другого популярного дистрибутива, Fedora, тоже есть удобные средства для создания респинов. Это GUI-прога Revisor и скрипт Livecd-creator с CLI-интерфейсом. Revisor представляет собой аналог UCK и Reconstructor для Fedora. Пожалуй, единственное существенное отличие — это то, что для создания респина не требуется LiveCD, все пакеты будут скачаны из инета.

Revisor есть в стандартном репозитории Fedora, начиная с седьмой версии, поэтому установка не должна вызвать сложностей:

# yum install revisor

Для нормальной работы как Revisor, так и Livecd-creator лучше перевести SELinux в разрешающий режим:

# setenforce 0

Для запуска Revisor нужны рутовые привилегии. На первом шаге мастера предлагается выбрать тип респина (CD/DVD инсталлятор и/или LiveCD). Второй шаг — выбор собираемой модели. Тут надо немного пояснить: в основном конфигурационном файле /etc/revisor/revisor.conf описаны "Модели" (специальные секции в конфиге, содержащие особенности сборки той или иной версии Fedora). Основная характеристика конкретной модели — репозитории, откуда будут скачаны пакеты. По умолчанию, Revisor в Fedora 12 может собрать модели Fedora 12 и Fedora Rawhide для архитектур x86, x86-64 и PPC. Добавляя описание моделей в конфиг, можно научить Revisor собирать, например, Fedora 11 и Fedora 13. На следующем шаге можно указать kickstart-файл и выбрать, какие секции из него использовать. Четвертый шаг — выбор ПО. И вот тут меня ждала неприятность: список пакетов отказался выстраиваться в группы, поэтому пакеты пришлось выбирать из большого общего списка (долго, и есть нехилая вероятность забыть что-нибудь нужное). Видимо, неисправленный баг в Revisor, что, в принципе, не удивительно — проект давно не развивался (последняя версия вышла аж в декабре 2007). После выбора пакетов покажется короткая статистка (количество пакетов, объем для загрузки, объем в установленном виде). Следующие шаги — настройка сети, задание параметров загрузки ядра, параметры аутентификации, настройка файрвола, SELinux, X Window и создание пользователя. По окончании настройки Revisor скачает все выбранные пакеты из инета и начнет сборку. Вся эта процедура у меня на виртуальной машине заняла около получаса.

Livecd-creator — менее капризный и более гибкий, но не совсем интуитивно понятный инструмент. Эта тулза создает LiveCD, основываясь на конфигурационном файле, синтаксис которого совпадает с kickstart. Установка livecd-creator (входит в состав livecd-tools):

# yum install livecd-tools spin-kickstarts l10n-kickstarts

Чем создавать с нуля свой конфиг, проще взять готовый и немного его подредактировать. Готовые конфиги лежат в /usr/share/spin-kickstarts. Создается LiveCD из конфига следующим образом:

# livecd-creator --config=/usr/share/spin-kickstarts/fedora-livecd-desktop.ks --fslabel=Fedora-LiveCD --cache=/var/cache/live

Все необходимые пакеты также будут скачаны из инета.

Userfriendly Gentoo

Легко построить свой респин можно даже на базе Gentoo, причем всего за несколько шагов. Только для этого надо воспользоваться специальным средством Calculate Linux Scratch (CLS). CLS — это полностью совместимый с Gentoo дистрибутив, предназначенный для создания собственных LiveCD/LiveUSB. Кроме базовой версии с OpenBox, есть также версия с Gnome (CLSG). Чтобы воспользоваться CLS, надо выбрать в меню загрузки LiveCD пункт Builder. Загрузится обычная на первый взгляд Live-система, в которой потом можно будет тестировать внесенные изменения. Для того чтобы перейти непосредственно к сборке, следует ввести:

# cl-builder

После выполнения команды цвет приглашения изменится на коричневый и выполнится chroot в /mnt/builder, где и будет происходить сборка. В этом режиме можно устанавливать, обновлять, удалять программы без каких-либо ограничений. После того как все необходимые изменения внесены, можно выйти из режима сборки (набрав exit или <Ctrl+D>) и протестировать изменения в Live-системе. Если все устраивает, то можно запустить сборку своего LiveCD:

# calculate --iso

Образ будет создан в /usr/calculate/share/linux. Если ОЗУ не достаточно, то на этом этапе все может обломиться, поэтому рекомендую заранее подмонтировать к этому каталогу какой-нибудь более-менее емкий rw-носитель.

Happy End

Практически для каждого популярного дистрибутива можно найти удобное средство для создания респина: будь то веб или локальное приложение. Но как бы то ни было, ничто не даст столько экспы в этой области, как сборка Linux from Scratch...



Теги: Linux , дистрибутив





СЛЕДУЮЩИЕ СТАТЬИ
Windows 7 PORTABLE: делаем загрузочную флешку с "семеркой" на борту
Младенец с лицом убийцы: изучаем внутреннее устройство Qubes OS
ПРЕДЫДУЩИЕ СТАТЬИ
Ставим Linux на USB Flash Drive
OpenVMS: плюс на минус
Vista и IE7: воспоминания о будущем
WinXPE: Народ России с Windows
Введение в OpenVMS
NetBSD глазами хакера №2
NetBSD глазами хакера №1
M0n0wall: файрвол за 5 минут
Solaris для всех и каждого
Выключай правильно
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
02.09.2010 20:10:51
Ответить Ссылка
Щас школота начитается, будут нам тонны БолгенОСов))
UserГость
02.09.2010 22:00:02
Ответить Ссылка
ахахах согласен !Или наш гений захочет взять марш реванш!
UserГость
03.09.2010 2:26:44
Ответить Ссылка
фигня какая-то. сделай свой дистрибутив. ну если заняться больше нечем то давайте наплодим трилионы дистров отличающихся софтом и картинками.
UserГость
03.09.2010 11:00:24
Ответить Ссылка
>> Многообразие — блеск и нищета мира Linux.

Что аффтар имел ввиду сказать этой фразой?
UserГость
03.09.2010 20:36:53
Ответить Ссылка
>> фигня какая-то. сделай свой дистрибутив. ну если заняться больше нечем то давайте наплодим трилионы дистров отличающихся софтом и картинками.

Ты не в теме. Это немного для других целей, а не для создания своего болдженоса. Я, например, использую это для себя, а не для того, чтобы другие пользовались.
UserГость
03.09.2010 20:50:53
Ответить Ссылка
Не все дистрибутивы рассмотрены.
Avatarrgo
03.09.2010 21:25:17
Ответить Ссылка
А что означает слово "респин"? Это калька с какого-то английского слова? С какого?
UserГость
04.09.2010 8:53:19
Ответить Ссылка
"Ты не в теме. Это немного для других целей, а не для создания своего болдженоса. Я, например, использую это для себя, а не для того, чтобы другие пользовались." - сам ты не в теме. Тоже мне мля ТЕМА! Я что говорил что все делают дистрибутивы для других? Помрему у тебя проблемы со зрением
Avatarrgo
04.09.2010 10:15:11
Ответить Ссылка
quote:

ORIGINAL: Guest
сам ты не в теме. Тоже мне мля ТЕМА! Я что говорил что все делают дистрибутивы для других? Помрему у тебя проблемы со зрением

Ты говорил, что это "фигня какая-то". И судя по всему ты говорил это, потому что "не в теме", потому что тебе не приходилось ручками перелопачивать процесс установки/загрузки дистра, с тем чтобы он стал запускаться с dvd, с usb или чтобы сделать бездисковую сетевую станцию. Или, скажем, чтобы набор софта по-умолчания был бы более подходящим ситуации, и установка копий дистрибутива требовала бы минимум телодвижений. Или чтобы всё это вместе.
Но вообще, я согласен с тобой: фигня какая-то. Нунафиг этот редхат с убунтой. Вот если бы такую утилитку к генту, было бы классно.
UserГость
05.09.2010 17:46:16
Ответить Ссылка
quote:

Вот если бы такую утилитку к генту, было бы классно.

многабукф, ниасилил текст? последний пункт для кого?
Avatarrgo
06.09.2010 17:29:54
Ответить Ссылка
quote:

ORIGINAL: Guest
quote:

Вот если бы такую утилитку к генту, было бы классно.

многабукф, ниасилил текст?

=)
Типа того. Букф действительно много, читать все лень, пробежался по диагонали. Но всё равно это не торт, по-моему. Сабайон тоже полностью совместим с генту, но и тем не менее я пользую генту, а не сабайон. Здесь та же хрень: чем связываться с утилитой для другого дистра, и затачивать её под привычный, проще ручками сделать. Взять любой live-cd, закинуть на него stage3, собрать все необходимые пакеты в бинари и тоже закинуть на live-cd. Или даже жёстко вмонтировать эти бинари в stage3. И это при том, что создание установочных дисков -- это прошлый век. Сегодня в конторах есть ethernet, и создавать инсталляционный диск, таскать его с собой и втыкать в каждый привод мне, например, лень. Проще сделать сетевую бездисковую установку, грузить новый комп по сетке, запускать установку (rsync, или даже хуже: cp/scp) и идти пить чай. Ну или если установок делается сразу много, то можно даже пойти поспать.
Мне-то хотелось бы иметь что-нибудь, для работы, например, с сетевыми установками генту: создание этих сетевых установок и их администрирование. Пока платформы сервера и клиентов одинаковы или совместимы, то всё без проблем делается chroot'ом. Если же они не совместимы приходится устраивать танцы с бубном: заходить на удалённый хост через ssh, запускать эмулятор проца удалённого хоста... Я не очень представляю себе как можно сделать иначе, но было бы прикольно, если бы кто-нибудь придумал и реализовал бы. Ну, скажем, чтобы я говорил бы 'chroot /foriegn/host/root', и всё бы работало: бинарники бы запускались при помощи qemu как ядерные misc-binary, при этом coreutils, bash, python, gcc, ld, make и ряд других, запускались бы нативные. Вот это было бы действительно круто.
UserГость
20.09.2010 23:41:51
Ответить Ссылка
rgo,

А qemu не спасёт ацца русской демократии? У нас вон появились смартбуки за 99$ с процессором ARM926EJ. Куплю, посмотрю, что за зверь, может быть соберу для него что-то, если получится. Вроде, для QEMU есть даже какой-то пресет, который эмулирует такую машину.




Keywords: zPOSTz zHOMEz, zOSz, zSETUPz, zINFOz, zYANDEXz z53141z
Для Авторов: edit Lock delete Lock



    Rambler's Top100