- Создание собственного дистрибутива Linux
- Быстрое создание своего собственного Ubuntu
- Продвинутые настройки
- Создание собственного установочного образа Ubuntu
- Другие онлайновые сборщики дистрибутивов
- Создание дистрибутивов на базе Fedora Linux
- Создание собственного дистрибутива для Raspberry Pi
- Как смастерить собственный дистрибутив Линукс
- Простой восстанавливающий скрипт в Puppy Linux позволяет взять существующую инсталляцию и «свернуть» ее в ISO файл
- Предостережения
- Переделка существующего дистрибутива
- Начало процесса инсталляции Gentoo при помощи Gentoo Live CD. Классическая версия инсталлятора Gentoo из командной строки, работает все так же хорошо, но некоторым удобнее работать в графическом интерфейсе
- Линукс из ничего
- Подготовка к началу работы Линукса Из Ничего при помощи одного из автоматизированных скриптов. Это вовсе не заменяет знания того, как строить дистрибутив; вам необходимо знать, как контролировать «стройку» от начала до конца
- Gentoo
- Распространение
Создание собственного дистрибутива Linux
На сегодняшний день существует несколько сотен активно развивающихся дистрибутивов Linux всех цветов и размеров. Существуют различные инструменты для создания собственного дистрибутива.
Быстрое создание своего собственного Ubuntu
Подходит также для mumbuntu и dadbuntu.
За долгие годы, прошедшие с момента выхода первого релиза Ubuntu, было придумано множество утилит, позволяющих создать собственную версию Ubuntu. Отчасти этим объясняется существование огромного количества его производных. Хотя большинство их быстро забрасывают, Ubuntu Customisation Kit (UCK) жив до сих пор.
Вы можете установить UCK в Ubuntu или любом другом дистрибутиве на его базе, например в Linux Mint. Утилита есть в официальных репозиториях, поэтому вы можете установить ее с помощью пакетного менеджера. Далее, вам понадобится ISO-образ того дистрибутива, который вы хотите изменить. Чтобы упростить этот процесс, желательно использовать образ дистрибутива, включающий графическую оболочку, которую вы собираетесь задействовать. Например, если вы хотите использовать в своем дистрибутиве локализированный декстоп Gnome, лучше использовать образ Ubuntu Gnome, а не стандартного Ubuntu. Если вы работаете на 32-битной машине, образ должен быть собран для архитектуры i386. Однако если у вас 64-битная система, вы можете настраивать 32-битный образ.
После запуска UCK вы увидите приветствие и информацию о требуемом дисковом пространстве, затем мастер, который будет управлять дальнейшим процессом. На первом этапе необходимо будет выбрать язык для вашего дистрибутива вместе с языком загрузочного меню (убедитесь, что дистрибутив на базе которого вы собираете свою систему, поддерживает эти языки).
После выбора языка необходимо указать графическое окружение дистрибутива. UCK позже скачает для него файлы локализации, основываясь на вашем выборе языка. Затем необходимо будет указать местонахождение образа дистрибутива Ubuntu, который вы будете настраивать.
Затем UCK запросит у вас имя вашего дистрибутива и спросит, хотите ли вы вручную настроить свой дистрибутив. Если вы ответите положительно, откроется окно терминала, в котором корневая директория будет изменена на окружение сборки вашего дистрибутива. На последней стадии UCK предложит вам опцию удаления из вашего дистрибутива всех относящихся к Windows файлов, и создания гибридного ISO-образа диска, который можно прожечь на болванку, или скопировать на USB-флешку. После этого UCK распакует образ диска и скачает файлы локализации. Затем, вы сможете настроить дистрибутив вручную, если ранее выбрали эту опцию. Опция «Run Console Application» запустит окно терминала с оболочкой root.
Продвинутые настройки
В этом окне вы можете использовать менеджер пакетов apt-get для удаления и установки приложений. Например, вы можете установить поддержку мультимедиа с помощью apt-get install ubuntu-restricted-extras. Если ваш дистрибутив предназначен для использования на слабых машинах, вы можете удалить LibreOffice:
и заменить его на AbiWord:
Если вы хотите поместить на рабочий стол ярлыки для ваших программ, сначала создайте директорию Desktop:
Теперь вы можете скопировать туда ярлыки для всех установленных приложений:
и затем сделать их исполняемыми:
Если вы хотите изменить обои для рабочего стола, откройте файл /usr/share/glib-2.0/schemas/10_ubuntu-settings.gschema.override в текстовом редакторе и измените параметр picture-uri на путь к вашему изображению:
Аналогично вы можете изменить тему и иконки, отредактировав соответствующие параметры в этом файле. Например, если вы хотите заменить тему Ambiance на Radiance и использовать набор иконок HighContrast:
После редактирования этого файла не забудьте скомпилировать модифицированные темы оформления:
Вы таже можете копировать файлы на свой live CD. Для этого запустите еще один терминал и перейдите в директорию
/tmp/remaster-root/, которая является корневой для нашего live CD. Например, вы хотите скопировать определенные ярлыки и папки в Desktop:
После завершения закройте терминал chroot и выберите опцию «Continue Building» в мастере UCK. Теперь начнется сборка вашего нового дистрибутива.
Создание собственного установочного образа Ubuntu
Если вам нужно установить Ubuntu с одним и тем же набором программ на большое количество компьютеров с похожими храрктеристиками, например в лаборатории или в классе, вы можете сэкономить свое время, создав образы для автоматической установки. Сервис www.instalinux.com похож на SUSE Studio, но вместо полнофункциональных дистрибутивов на базе OpenSUSE он создает небольшие ISO-образы, которые предназначены для развертывания готовых к использованию Linux-машин путем автоматического скачивания и установки пакетов.
Сервис работает с использованием скриптов SystemDesigner CGI из проекта Linux Common Operating Environment (http://linuxcoe.sourceforge.net). Интерфейс проведет вас через процесс сборки, состоящий из тех же этапов, что и установка дистрибутива, то есть выбор раскладки клавиатуры, часового пояса, пароля для root, пакетов, разметка диска и т.д. После этого создается установочный образ небольшого (около 30 Мб) размера.
Другие онлайновые сборщики дистрибутивов
SUSE Studio — не единственный веб-сервис для создания дистрибутивов linux. Debian Builder (http://live-build-cgi.debian.net/cgi-bin/live-build) на хостинге проекта Live Systems предоставляет инструменты для создания официальных образов Debian. Он позволяет создавать базовые образы для сетевой установки без X сервера, а также гибридные ISO-образы для загрузки с USB.
Вы можете быстро создать базовый диск, выбрав требуемые вам опции, в том числе ветвь Debian (Wheezy, Jessie, Sid) и предопределенный набор пакетов (Gnome Desktop, KDE Desktop, Mate Desktop, Rescue и т.д).
Продвинутые пользователи могут также работать с дополнительными опциями. Вы можете указать архитектуру сборки, файловую систему окружения chroot, загрузчик, и многое другое. Система уведомит вас по электронной почте, что ваш образ готов для скачивания.
Также есть Porteus Wizard (http://build.porteus.org). Porteus — это небольшой дистрибутив на базе Slackware. Используя простой, но мощный веб-интерфейс, вы можете собрать свою версию Porteus, выбрав графическое окружение (KDE4, Mate, LXDE, Xfce) и программы, включая веб-браузеры (Firefox, Chrome, Opera), текстовые процессоры (LibreOffice, AbiWord), клиент VoIP (Skype), графические драйвера для видеокарт Nvidia и AMD Radeon и так далее. Вы также можете настроить продвинутые параметры загрузки, например заданный размер раздела tmpfs, или активацию модуля ядра zram.
Создание дистрибутивов на базе Fedora Linux
Если вы живете в мире RPM и являетесь адептом Fedora, вы можете собрать собственный дистрибутив с помощью утилиты livecd-creator. Это набор скриптов, имеющийся в официальных репозиториях Fedora. В отличие от UCK, livecd-creator работает исключительно в командной строке, а все пакеты, необходимые для сборки дистрибутива, скачиваются из интернета.
Скрипты используют для сборки файлы Kickstart. Если вы о них еще не слышали, Kickstart представляет собой простой текстовый файл, содержащий список инструкций, в соответствии с которыми livecd-creator компилирует ваш дистрибутив.
Чтобы облегчить себе жизнь, вы можете скачать файлы Kickstart для нескольких разновидностей Fedora, установив из репозиториев пакет spin-kickstarts, после чего эти файлы будут лежать у вас в директории /usr/share/spin-kickstarts. Вы можете настраивать свой дистрибутив, просто редактируя один из этих файлов в текстовом редакторе. Изучить их синтаксис более подробно можно в Fedora wiki (http://fedoraproject.org/wiki/Anaconda/Kickstart).
Можно также сэкономить себе время, установив утилиту Kickstart Configurator.
Эта программа предлагает простой графический интерфейс для создания файла Kickstart.
Вы можете задать требуемые вам пакеты, перечисляя их в секции %packages. Вместо отдельных пакетов здесь также можно добавить определенные группы пакетов, например gnome-desktop. Вы также можете указывать здесь пакеты из других файлов Kickstart, задавая их имя и расположение с параметром %include:
Если вам нужно после загрузки дистрибутива запустить на выполнение какую-либо команду, например для настройки сети, необходимо задать ее в секции %post. Например, если вы хотите автоматически запускать Firefox, можете поместить его ярлык в папку
/.config/autostart, добавив в секцию %post следующие строки:
Убедитесь, что конец секций %packages и %post обозначен с помощью %end. Если вы хотите запустить какую-либо команду за пределами своего live-окружения, например скопировать файлы хоста в свой дистрибутив, добавьте параметр -nochroot в секцию %post, как показано ниже:
Переменная $LIVE_ROOT указывает на live-окружение. Аналогичным способом вы можете копировать файлы с хоста в свое live-окружение, например:
Если вы используете графическую утилиту для задания репозиториев, вы должны вручную добавить в файл Kickstart одну важную строку. Она указывает на список зеркал для репозитория Fedora (а также содержит информацию о версии и архитектуре сборки), откуда будут скачиваться пакеты. Например, если вы хотите получать пакеты для 64-битной Fedora 21, эта строка будет иметь следующий вид:
После того, как вы закончили с файлом Kickstart, откройте его с помощью livecd-creator для сборки дистрибутива. Предположим, файл сохранен в
/custom-kickstarts/Custom-Fedora.ks, тогда команда будет иметь вид:
Ключ -fslabel задает имя вашего дистрибутива. После выполнения всех инструкций в файле Kickstart утилита собирает ISO-образ вашего дистрибутива, который сохраняется в вашей домашней директории.
Создание собственного дистрибутива для Raspberry Pi
New Out Of the Box Software, или NOOBS — это официальный инсталлятор для Raspberry Pi. Он упрощает и стандартизирует процесс установки дистрибутивов на Raspberry Pi. Хотя главной целью создания NOOBS является упрощение установки операционных систем на Pi, эта утилита может также использоваться для создания собственных дистрибутивов.
Сначала скачайте инсталлятор NOOBS с сайта и установите его в любом поддерживаемом дистрибутиве, на основе которого вы хотите сделать свою систему. Мы советуем использовать дистрибутив Raspbian, который рекомендуется и создателями NOOBS.
После установки и загрузки Raspbian вы можете вносить в него свои изменения. Например, вы можете изменить обои рабочего стола и сменить тему с помощью утилиты командной строки obconf, а также установить дополнительные темы с помощью команды:
Вы также можете устанавливать или удалять с помощью apt-get, или установив графический менеджер пакетов Synaptic.
Вы можете скопировать в этот дистрибутив Raspbian любые файлы.NOOBS позволяет создать раздел размером 512 Мб, в котором вы будете хранить свои файлы. Или вы можете воспользоваться командой raspi-config, чтобы расширить корневой раздел на всю SD-карту.
Кроме того, не забудьте настроить работу с сетью. Например, вы можете настроить беспроводный адаптер для подключения к вашей точке доступа Wi-Fi, а также доступ к различным сетевым службам.
После завершения настройки дистрибутива необходимо упаковать его в архив. Перейдите в корневую директорию с помощью команды cd / и выполните следующую команду:
Упаковка займет примерно полчаса, в зависимости от количества сделанных вами изменений.
Теперь у вас есть файл root.tar в корневой директории. Аналогично упаковываем загрузчик. Сначала переходим в директорию boot.
Затем создаем архив.
Это не займет много времени. Теперь у вас есть файл boot.tar в директории boot.
NOOBS требует сжатые версии этих файлов. Но у Raspberry Pi недостаточно ресурсов для сжатия этих файлов, поэтому вам необходимо переместить их на PC и сжать с помощью команд xz -9 -e boot.tar и xz -9 -e root.tar. При этом исходные файлы будут заменены на их сжатые версии, boot.tar.xz и root.tar.xz соответственно.
Теперь отформатируйте SD-карту и разверните на ней свежую копию NOOBS. С помощью файлового менеджера перейдите в директорию os, которая, в свою очередь включает множество директорий, в каждой из которых имеются файлы для одного из поддерживаемых дистрибутивов, включая Arch, Pidora, Raspbian и других. Так наш дистрибутив сделан на базе Raspbian, мы можем удалить все другие директории. Назовите директорию Raspbian именем, которым вы хотите назвать свой дистрибутив.
Источник
Как смастерить собственный дистрибутив Линукс
Хотите ли вы подогнать под свои нужды Knoppix, переделать существующую операционную систему с открытыми кодами, например Puppy Linux, или вы нацелились создать свою собственную систему из ничего, мы поможем вам на этом пути.
Сделай сам. Это тот способ, которым создавался Линукс. Группа энтузиастов, вдохновляемая и ведомая Линусом Торвальдсом, создала величайшую «самодельную» операционную систему, которую когда-либо видел мир. Вам тоже под силу создать собственный дистрибутив Линукс.
Простой восстанавливающий скрипт в Puppy Linux позволяет взять существующую инсталляцию и «свернуть» ее в ISO файл
Звучит довольно устрашающе, и действительно, в этом деле многое, определенно, не для новичков. Но, принимая во внимание множество знаний, которые вы приобретете по ходу работы, и, учитывая результат, эта задача имеет много общего с собиранием компьютера из разрозненных деталей. Допускаю, что в случае сборки компьютера, всегда найдется множество причин, чтобы купить готовый с полки, точно также найдется достаточно оснований скачать готовый дистрибутив и просто пользоваться им. Существует лишь несколько рациональных причин заниматься созданием собственного дистрибутива:
Для самообразования. Иногда лучший способ узнать что-либо — это запустить руки под капот и хорошенько их испачкать, желательно под чьим-нибудь чутким руководством. Нет никакой гарантии, что вы все узнаете. Но вы узнаете вкус процесса познания и поймете, в каком направлении двигаться, чтобы получить ответ на свой вопрос (и как именно его получить), что вы вряд ли приобретете, установив популярный дистрибутив, и выполняя на нем ежедневную работу.
Для решения определенной проблемы, либо для ликвидации пробела. Скажем, если есть какая-нибудь «заковыристая железяка», с которой вы очень хотите работать, вы можете доработать имеющийся дистрибутив, чтобы он хорошо «ладил» с этим устройством. Это может оказаться простейшим подключением поддержки данного устройства в ядре, а может оказаться значительно более сложным делом. А может быть, вы захотите создать дистрибутив для очень специфической цели. (Не так давно я писал про Hikarunix , ныне, к сожалению, заброшенный дистрибутив, посвященный игрокам в Го; трудно придумать нечто более узкоспециальное).
Для развлечения. Я называю это «а почему нет?». Линукс существует, чтобы с ним возиться, так вот и возитесь, и получайте удовольствие. Сомнительно, чтобы вы доверили ценную работу системе, на которую затратили столько времени, но разве это уменьшает удовольствие? А если что-то пойдет наперекосяк, всегда можно все стереть и начать с чистого листа. (В конце концов, вы же не в рабочее время этим занимаетесь, и не в коммерческих целях, верно?)
Предостережения
Прежде чем начитать «ваять», следует хорошо понимать несколько вещей.
Для начала нужно уже знать что-нибудь о Линукс. Прежде чем пытаться создать свой собственный дистрибутив, хотя бы в общих чертах познакомьтесь с Линукс, если вы этого еще не сделали. Короче: попользуйтесь Линуксом какое-то время. Если вы не знаете основ, мало толку пытаться вносить улучшения.
Будьте терпеливы и внимательны. Любой проект такого типа, даже автоматизированный до известной степени, скорее всего, будет долгим и полным разочарований. Не надейтесь закончить все в тот же день; будьте готовы вести заметки о том, как все работает и почему.
Налаживайте все на свой страх и риск. Имейте в виду, что любое изменение может иметь неожиданные последствия. Например, вы решили отключить в ядре поддержку PC карт (возможно потому, что вы не используете ваш переделываемый проект на ноутбуке и не хотите включать эти модули); вам следует задокументировать это на тот случай, чтобы некто, использующий ноутбук, и зависящий от РС карт, не был поставлен в тупик. Даже если вы не собираетесь распространять законченный проект, очень стоит задокументировать основные функциональные изменения. Вы сильно удивитесь через некоторое время, как вы могли забыть о таких вещах. Предпочитайте стабильность скорости. Одна из возможностей, которую вы обнаружите по ходу дела, это возможность использовать оптимизацию компилятора для ускорения процесса. Это значит, для компиляции исходного кода вашего ядра, или инструментальной цепочки, использовать инструкции, предназначенные для специальной разновидности процессора, таких как множественные MMX / SSE / 3Dnow модификации. Беда в том, что применение данных оптимизаций, может оказаться делом, приводящим к сбоям и частым отказам; хуже того, вы можете узнать, насколько это сбойно, уже весьма далеко подвинувшись в процессе сборки. Для начинающих вполне достаточно значений оптимизации, установленных по умолчанию. В документе, который я цитировал выше, Jim Gifford говорит, — «Тот факт, что у меня не было проблем с компиляцией (с определенным набором настроек компилятора), вовсе не означает, что проблем не будет и у вас».
До поры до времени, не пытайтесь использовать сотворенную вами систему для своих ежедневных рабочих задач, чтобы опробовать, насколько она хороша. Работать с ценными материалами, а не с их копиями на такой «самодельной» системе — не самая продуктивная мысль. Существующие, проверенные пользователями дистрибутивы уже прошли всестороннюю обкатку, и вероятность существования в них устойчивых системных ошибок намного меньше. Создание своего собственного дистрибутива дает гораздо меньше уверенности в уровне стабильности или полноты свойств. Но иногда, наткнуться лбом на эти препятствия, является способом изучить их из первоисточника, если у вас есть на то время и склонности.
Переделка существующего дистрибутива
Существуют три основных способа сотворить собственный дистрибутив, их выбор зависит от того, что именно вы хотите усовершенствовать, и от уровня ваших технических знаний, которые вы можете вложить в проект. Первым, наиболее простым, и, возможно, быстро приносящим плоды способом, является переделка уже существующего дистрибутива.
Начало процесса инсталляции Gentoo при помощи Gentoo Live CD. Классическая версия инсталлятора Gentoo из командной строки, работает все так же хорошо, но некоторым удобнее работать в графическом интерфейсе
Перестройка, или переделка, включает установку данного дистрибутива, внесение изменений или усовершенствований, и затем «упаковку» дистрибутива, вместе со всеми изменениями, снова в файл образа (обычно .ISO файл) В последние два года, этот подход стал гораздо проще, благодаря коллекции инструментов и программ для автоматизации процесса, созданных сообществом. Такие инструменты быстро становятся неотъемлемой частью самих дистрибутивов. Так что, если вы «запали» на Линукс, и хотите попробовать свои силы в модификации дистрибутивов, этот путь будет лучшим для старта.
Один из моих любимых дистрибутивов, Puppy Linux , может быть переделан несколькими различными путями. Наиболее кардинальный путь лежит через использование встроенной программы — Puppy Simple CD Remaster script, которая рекомпилирует все в текущей работающей файловой системе на CD. Программа делает паузы, и сообщает вам о ходе процесса, так что вы знаете, когда и где сделать нужные вам изменения, например, изменить настройку «железа» в директории /etc. (Подсказка: Установленный по умолчанию в дистрибутиве Puppy файловый менеджер ROX-Filer, позволяет просматривать .ISO файлы, как директории «только для чтения», так, что вы можете следить за результатами по окончании дела).
Заметьте, что если вы захотите проделать это все с дистрибутивом, установленным на жесткий диск, то лучше будет произвести так называемую «экономную» установку дистрибутива Puppy на жесткий диск, затем произвести желательные изменения, а потом «слепить» все обратно. «Экономная» установка позволяет Puppy сосуществовать с другими операционными системами в одном разделе винчестера (обычно другого Линукса). Все содержимое дистрибутива Puppy устанавливается в виде пяти больших файлов, один из которых является файлом-образом, представляющим файловую систему Puppy. Это отличается от «полной» инсталляции, при которой Puppy требует для себя целый раздел, где «расписывает» все файлы обычным порядком. Simple CD Remaster скрипт, в тот виде, как он есть, не может работать с полной инсталляцией, хотя, якобы, существует способ его «заставить».
Простая программа Simple CD Remaster script, пожалуй, лучший способ войти в курс дела, так как она дает некоторое представление о том, как это все работает, в то же время, держа вас под контролем. Более сложный, но и более технически продвинутый подход — независимая программа HackyRemaster script. Этот скрипт берет содержимое Puppy CD, либо .ISO файл, распаковывает его в рабочую директорию (которая может находиться где угодно), и позволяет вам делать изменения, которые вы найдете нужными, прямо в файловой системе. По окончании, все содержимое снова упаковывается в .ISO файл. Программа Puppy Unleashed подразумевает установку большого архива (1.5 ГB) всех возможных пакетов для Puppy , чтобы использовать его для строительства «самодельного» дистрибутива, Оборотная сторона такого подхода в необходимости закачивать целый архив и хорошо знать все о пакетах, с которыми придется возиться. Еще одна стартовая точка при работе с Puppy — это Empty Crust , сильно упрощенная версия Puppy Linux 1.0.7. Эта версия специально отстает на несколько релизов от современной, но способна стать «скелетом» будущей самоделки.
Я выбрал в качестве примера перестройки/переделки дистрибутив Puppy за его простоту, но существует много других крупных дистрибутивов с подобными функциями. Всегда полезный Knoppix , live-CD дистрибутив, из которого строится множество других, имеет руководство , где очень подробно описано, как переделывать Knoppix, начиная от удаления/добавления пакетов, и заканчивая изменением внешнего вида и поведения всей системы. И Ubuntu также имеет средства перестройки своих установочных CD, хотя руководство не слишком автоматизировано, имеются написанные сообществом скрипты, для облегчения этой работы.
Попутно упомяну найденный мной в сети хитрый инструмент для создания собственного измененного дистрибутива: Custom NimbleX CD builder http://custom.nimblex.net/, генерирующий собранный с переделками .ISO файл небольшого, но функционального дистрибутива NimbleX . Это не так гибко, как собирать дистрибутив вручную, но, тем не менее, весьма полезно.
Линукс из ничего
Следующим шагом для тех, кто достаточно амбициозен для сборки собственного дистрибутива, будет Линукс Из Ничего (Linux From Scratch) — LFS.
LFS — это и дистрибутив, и онлайновое руководство для его сборки, все в одном флаконе. LFS LiveCD, представляющий из себя тщательно продуманную среду для «выращивания» вашей собственной Линукс системы, включает полную версию книги-руководства, а также содержит исходные коды, которые понадобятся вам для строительства дистрибутива.
LFS подразумевает, что вы обладаете изрядным рабочим опытом в Линуксе. По меньшей мере, вы должны ориентироваться в командной строке, и следовать инструкциям. Нужно сказать, что одна из прелестей подхода к делу LFS заключается в том, что каждая из команд, используемых вами для строительства целого дистрибутива, документирована «изнутри», так что вы не просто слепо выполняете набор инструкций. Все, что вы применяете — каждая команда, каждая опция — подробно разъясняется и становится понятной.
Подготовка к началу работы Линукса Из Ничего при помощи одного из автоматизированных скриптов. Это вовсе не заменяет знания того, как строить дистрибутив; вам необходимо знать, как контролировать «стройку» от начала до конца
Создание новой системы LFS Linux происходит внутри «дистрибутива-хозяина», используя его как среду для выполнения работы. Проще всего скачать LFS Live CD и использовать его, тем более что он включает в свой состав среду, специально подогнанную для такого типа работы — с сокращенным числом параметров, которые могут вызвать ошибку. Можно провести параллели между возведением здания на пустом месте, и созданием Линукс дистрибутива при помощи LFS (авторы LFS в своей книге используют эту метафору, так можно, я тоже ей попользуюсь?).
1.Подготовительные работы. Первые несколько шагов сопоставимы с рытьем котлована и заливкой фундамента для здания. Вам помогут установить файловую систему (около 4-х Гб — я бы отвел 8 или больше, место нынче недорого); скачать основной набор пакетов , потребных для всего дела, и установка некоторых вступительных мелочей, вроде создания пользовательского аккаунта, из которого будут производиться многие LFS работы.
2. Временная система. Временная система подобна строительным лесам — сами они не являются частью строения, но без них здания не построить; а когда нужда в них отпадет, их разберут. Временная система состоит в основном из цепочки инструментов разработки — набора утилит, который вы создаете для того, чтобы с его помощью создавать собственно дистрибутив, например компилятор GCC. Инструменты из этого набора сами компилируются из исходного кода — неплохой способ получить экспресс-курс по сборке приложений из исходного кода, который совершенно необходим при работе с Линукс и со свободными исходниками вообще.
3. Построение и загрузка самой системы. Только теперь мы начинаем сборку самого дистрибутива — возведение здания. Как и прежде, вся работа, как, например, создание директорий для будущей системы будет делаться вручную, с пояснениями — «что это такое, для чего нужно, и почему именно так». Затем идет создание загрузочных скриптов, контролирующих процесс запуска, что делает систему загружаемой, и (наконец!) запуск новой системы LFS.
Однако проект на этом не заканчивается. Есть еще несколько продолжений в этом «сериале» проектов, к которым можно перейти, закончив первый. Следующим, скорее всего, будет Beyond Linux From Scratch , который предлагает настройку всего, что только возможно, в вашем новеньком Линукс дистрибутиве. Этим стоит заниматься: во-первых, если у вас есть амбиции превратить ваш дистрибутив в нечто более работоспособное, чем могли бы пользоваться и другие; во-вторых, если вы хотите получше изучить, что происходит внутри дистрибутива Линукс (всякие Х серверы, командные оболочки и тому подобное).
Hardened Linux From Scratch поможет создать с нуля версию Линукс с повышенной безопасностью, хотя проект кое в чем еще в стадии разработки. Cross Linux From Scratch позволит производить процесс сборки LFS при помощи перекрестной компиляции: как поясняют авторы проекта, — «Вы можете создать цепочку инструментов Sparc на машине x86, а затем использовать эту цепочку на машине Sparc для создания дистрибутива Линукс из исходников прямо там». Это, вероятно, наиболее «продвинутый» из проектов LFS, и с наименьшей аудиторией, что, впрочем, не лишает его права на существование; возможно, он будет полезен, если вы решите создать дистрибутив Линукс для какой-нибудь экзотической платформы.
Другой подход демонстрирует Automated Linux From Scratch , дающий высокую степень автоматизации процесса сборки LFS. Способ, которым это сделано, заслуживает Нобелевской премии за сообразительность: загружается целая книга LFS book, в которой все команды в тексте являются ссылками и работают автоматически. Таким образом, она работает прямо с новейшей версии книги, и может быть использована для осуществления любого проекта LFS, из числа описанных выше. Заметьте, что это не освобождает от необходимости читать книгу, вам все же придется проделать часть работы по подготовке системы, и иметь представление о процессе сборки LFS, чтобы начать работу.
Gentoo
Ни одно обсуждение проблемы создания собственного дистрибутива не будет полным без упоминания о Gentoo . Подобно LFS, Gentoo тоже строится из исходных кодов, но не с самого «нулевого цикла», а позже по ходу сборки; пакеты берутся в виде исходников и компилируются специально под архитектуру вашей машины, по мере необходимости. Благодаря этому, почти все аспекты системы — использованные пакеты, настройка и оптимизация компилятора, которым они собираются, и все остальное — находится в вашем полном распоряжении.
В этом есть хорошая и плохая стороны. Да, это позволяет вам собирать всю систему снизу доверху, чтобы сделать ее своей в такой степени, в какой вряд ли позволят настройки любого другого дистрибутива; идеальный инструмент для самовыражения. Но в то же время, это позволит вам запутать все до крайности, или, по крайней мере, насажать множество «ляпов» во множестве мест. Gentoo определенно дистрибутив «только для экспертов». Мой приятель так охарактеризовал его: «Знал бы, насколько это трудно, никогда бы не взялся». Поэтому Gentoo может использоваться, и используется, в качестве «производственной среды» для знающих и аккуратных.
Процесс создания системы Gentoo довольно схож с таковым системы LFS. Сперва вы скачиваете один из нескольких возможных установочных CD, в зависимости от архитектуры машины, на которой работаете. 32-битная x86 версия Gentoo, например, идет на другом CD, нежели 64-битная. (Имейте в виду, что ссылки в этой статье относятся к документации версии Gentoo x86; для иных архитектур вам придется поискать документацию самостоятельно).
После того, как вы загрузились с CD, наладили сеть и устроили разделы жесткого диска, вы затем скачиваете то, что называется stage3 архив, или stage3 тарбалл. Название «stage3» (стадия 3) происходит от того факта, что прежде, в ранних версиях Gentoo, требовалось пройти две предварительные стадии инсталляции — bootstrapping the buildchain (русских названий не имеют). Архив stage3 содержит все необходимое, чтобы начать работу немедленно, в пределах выбранной вами архитектуре машины, без необходимости проходить первые две стадии. Следующий шаг вводит в действие систему портежей Gentoo, чтобы собрать оставшиеся части и привести систему к наисовременнейшему уровню обновлений. Так как Gentoo имеет дело с исходными кодами, система портежей не скачивает прекомпилированные пакеты с репозитория — она загружает новейшие исходные коды программ, компилирует их по требованию вашей платформы. Так как компиляция — процесс длительный, особенно базового (список А) набора программ, некоторые большие приложения (например, Firefox) можно установить в виде бинарных прекомпилированных пакетов.
На этой стадии вы также имеете возможность влиять на то, как Portage компилирует пакеты, какие применяются параметры оптимизации, хотя обычно, для начала, стоит оставить их по минимуму. Подобные же настройки могут быть применены к компиляции ядра, и такие свойства как multiprocessor/multicore или поддержка PC карт, могут быть активированы, либо отключены. Имейте в виду, что попытки регулировать все подряд с первого раза могут привести к плохим результатам, оставьте их на потом, когда хоть раз пройдете весь процесс от начала до конца и получите результат, близкий к ожидаемому.
Одним из ключевых элементов доводки уже собранной системы Gentoo, являются USE флаги. Эти флаги, устанавливаемые в переменных окружения, используются при сборке пакетов. Они позволяют вам включать или отключать поддержку определенных свойств в различных пакетах, как способ влиять на скорость и объем вашей системы. Например, вы создаете систему, которая не нуждается в поддержке Иксов (скажем безмониторный сервер, который вы администрируете из командной строки), значит, вам нужно использовать флаг -X, чтобы отключить компиляцию поддержки для Х11.
Для создания системы, пригодной для распространения, необходимо освоить инструмент Gentoo названный Catalyst , предназначенный специально для создания компонентов выпускаемых Линукс дистрибутивов. Тот тарбалл stage3, который мы устанавливали раньше, тоже создается при помощи Catalyst. С его помощью можно создать live CD , как один из инструментов дистрибутива (можно собрать live CD из ничего без помощи программы Catalyst; якобы такой будет немного более гибким).
Распространение
Каков же будет следующий шаг после создания собственного дистрибутива? Кроме использования его в собственных целях, вы можете поделиться своей гордостью с окружающими — представьте его публике.
Это дело добровольное, но весьма полезное. Дистрибутив, который вы слепили, будет иметь аудиторию. И если эта аудитория вдумчивая, вы получите ценную обратную связь и узнаете, что работает, а что — нет. И, даже если в ваши планы не входит широкое распространение дистрибутива, вы узнаете вещи, которые помогут вам улучшить ваше детище.
Есть несколько способов «опубликовать» дистрибутив. Один из самых обычных — представить его на DistroWatch , пожалуй, единственный широко посещаемый сайт, имеющий дело с многообразием Линукс дистрибутивов. Сейчас, когда я пишу это, форма подачи заявок на DistroWatch подвергается каким-то переделкам, но с сайтом можно связаться и по электронной почте. Имейте в виду, что DistroWatch не принимает заявки на определенные категории дистрибутивов (в частности на основе Windows).
Место для хостинга нового дистрибутива — это отдельная история. SourceForge обычно не предоставляет хостинга для Линукс дистрибутивов из-за того, что на это требуется много места, но если сами коды дистрибутива находятся в каком-нибудь другом месте, может предоставить хостинг для отладки и дискуссий по такому проекту. К счастью, свободное место в Интернете стало удивительно дешевым в последнее время, да и можно воспользоваться системой BitTorrent, как способом уменьшить тяготы с пропускной способностью.
Не забудьте представить также дерево исходников. Я подразумеваю, что как дистрибутив, вами созданный, так и его отдельные пакеты распространяются под лицензией GPL (Гну Публичная Лицензия), так что не забудьте также включить исходный код. Исходные коды не должны находиться в тех же пакетах, что и бинарники, особенно потому, что дерево исходников может быть весьма велико, несколько гигабайт не является чем-то неслыханным. Важно, что вы делаете его доступным, и документируете этот факт, особенно если вы уже закончили вносить изменения в исходники.
Говоря о документации, есть еще кое-что, что неплохо бы присоединить к новому дистрибутиву. Может быть, это набор README файлов, или полная документация, или информация о каких-либо особенностях вашего дистрибутива, причуды, которые вам удалось заметить, вещи, которые стоит попробовать (и которые не стоит!), мысли по поводу развития проекта. Дистрибутив, в конце концов, всегда развивается.
Источник