![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Глоб. Модератор Сообщений: 10149 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
По-моему, была бы очень кстати трёхэтапная инструкция по сборке первого собственного дистрибутива. А именно :
Первый этап : сборка по профилю-заготовке, который предоставлен кем-то в готовом виде. Цель : быстро настроить, освоить и опробовать сборочную систему на своём компьютере и полюбоваться на результат. Второй этап : сборка простого небольшого дистра по своему профилю, сделанному на основе упомянутого профиля-заготовки. Цель : освоить основные приёмы работы с профилями. Третий этап : сборка уже такого дистра, какой тебе хочется иметь - любого объёма и любой сложности. Цель : стать серьёзным самостоятельным сборщиком. Я считаю, разбиение на этапы заметно облегчает обучение. Идея возникла из практики. Поскольку Юлианна взялась делать свой дистрибутив (это будет не новая версия Юлинукса, как сначала предполагалось, а именно собственная Юлина сборка под названием ЮлинТукс ![]() Инструкция для первого этапа уже написана и проверена в деле. Она не про сборку абстрактного дистра абстрактным сборщиком на абстрактном компьютере, а про сборку первой версии ЮлинТукса Юлианной на её домашнем компе, параметры коего известны. То есть тут всё рассматривается на вполне конкретном примере, что очень упрощает дело. Чтобы использовать инструкцию в иных условиях, надо её лишь немного изменить. Собственно, это в любом случае придётся делать : когда Юля настроит, освоит и опробует систему сборки на своём компьютере, то будет очень странным не использовать эту систему для создания давно задуманного Баклановского школьного/сельского дистрибутива, а тут, надеюсь, и ВладВлад подключится, вместе со школьными компами. Вот тогда и сделаем другой вариант инструкции, исходя опять же из новых конкретных условий. Это небольшая работа (во всяком случае, мне не лень её проделать), зато новичкам не надо мучиться, подгоняя обобщённые указания под свою обстановку. Не так уж много желающих заняться сборкой, чтобы нельзя было каждому дать подходящий именно для него вариант инструкции ![]() У себя я уже собрал ЮлинТукс строго по данной инструкции (то есть прикидывался, что мне её кто-то дал в готовом виде, а сам типа не знаю ничего ![]() Вот эта инструкция по первому этапу освоения дистростроя ( она, несомненно, далека от идеала, так что ожидаю дополнений/исправлений) : _____________________________________________________________________________ Итак, собирать ЮлинТукс Юля будет в Юлинуксе ![]() Примечание : команды, упомянутые ниже, выполняются от обычного юзера (и предполагается, что он в своём домашнем каталоге), если прямо не указано иное. Итак, Юля, приступаем ![]() Сначала надо скачать m-p-d (http://ftp.linux.kiev.ua/pub/Linux/ALT/people/_anatoly/packages/mkimage-profiles-desktop.tar.bz2) и брендинг (ftp://ftp.altlinux.org/pub/distributions/ALTLinux/5.1/branch/files/SRPMS/branding-altlinux-desktop-5.0.0-alt25.src.rpm) и положить их в домашний каталог. А также установить программы git, hasher,autoconf_2.60, mkimage. Содержимое каталога ALTLinux/RPMS.main установочного диска Юлинукса скопируй в каталог /var/cache/apt/archives (для чего нужны права рута). И заодно в Синаптике (Параметры - Параметры - Файлы) прикажи оставлять все загруженные файлы в кэше. Также установи в Юлинуксе программы, которые я перечислю (примечание : я прислал ей перечень софта, которого нет в Юлинуксе, но который должен быть в ЮлинТуксе) - чтобы при сборке этот софт брался из кэша apt'а, а не из интернета. В консоли от рута: Код hasher-useradd juli mkdir /mnt/mpd mount /dev/sda5 /mnt/mpd mkdir /mnt/mpd/out mkdir /mnt/mpd/mpd1 chown juli /mnt/mpd/out chown juli /mnt/mpd/mpd1 ln -s /mnt/mpd/out /home/juli/out # это чтобы готовые образы не забивали корневой раздел. tar xvfj /home/juli/mkimage-profiles-desktop.tar.bz2 -C /mnt/mpd/mpd1 ln -s /mnt/mpd/mpd1/mkimage-profiles-desktop /mpd Для проверки в адресной строке Konqueror'а введи /mpd - должен открыться каталог, в котором и будешь производить сборку. Вставь туда файлы, которые я пришлю; в них и находится тот самый профиль ЮлинТукса, рассматривать который изнутри мы пока не станем, отложим это на второй этап ![]() И ещё в консоли от рута : Код kwrite /etc/hasher-priv/system & Откроется файл, дополни нижнюю строку, получится Код prefix=~:/tmp/.private:/mnt/mpd Это чтобы была возможность заниматься сборкой в большом разделе. Потом опять от рута : Код kwrite /etc/fstab & В открывшемся файле найди строчку, в которой есть /mnt/sda5, и вместо неё вставь : Код /dev/sda5 /mnt/mpd ext3 rw,relatime 0 0 После этих манипуляций следует перезагрузиться. Распаковываем брендинг : Код rpm -i branding-altlinux-desktop-5.0.0-alt25.src.rpm && tar xvf RPM/SOURCES/branding.tar Появился каталог ~/branding, а в нём - исходники брендинга. Как их переделывать, чтобы изменить внешний вид дистрибутива - вопрос вовсе отдельный, про это у нас есть тема Брендинги . Тут предполагаем, что этот этап пройден - исходники для брендинга julintux-desktop готовы, хотя бы пробный вариант. После чего упакуй (в Konqueror'е, с помощью правой кнопки мыши) этот каталог в архив branding.tar. Теперь надо собрать из этих исходников rpm-пакеты. Для чего создаём так называемую хашерницу : Код mkdir hasher hsh --init Когда эта команда завершит работу, в ~/hasher обнаружишь хашерницу, то есть вроде как "Линукс в Линуксе", который только и умеет, что пересобирать пакеты. В данном случае она построена исключительно для пересборки брендинга (ну и отлично : лишних сложностей не будет). Далее : Код hsh-install rpm-utils gfxboot fonts-ttf-dejavu design-bootloader-source libalternatives-devel libqt4-core libqt4-devel ImageMagick fontconfig bc libGConf-devel Это мы установили туда пакеты, необходимые для сборки брендинга. Код cp branding.tar hasher/chroot/.in hsh-shell hasher Зашли в хашерницу. Обрати внимание : строка приглашения изменилась, твоё имя тут - builder; это потому что ты тут уже в упомянутом мини-Линуксе, а не в основной системе. Код cp /.in/branding.tar /usr/src/RPM/SOURCES cd /usr/src/RPM/SOURCES rpm -tb branding.tar Ждём, сборка может занять довольно много времени. Если работа команды завершилась без ошибки, то выполняешь команду Код exit после чего ты из builder'а превращаешься обратно в juli ![]() Для использования своего брендинга желательно создать свой репозиторий : Код mkdir -p myrep/i586/RPMS && cd myrep && mkdir SRPMS i586/base && ln -s i586 noarch && ln -s SRPMS SRPMS.myrep && cd i586 && ln -s RPMS RPMS.myrep && ln -s SRPMS ../SRPMS.myrep && cd ~ cp hasher/chroot/usr/src/RPM/RPMS/noarch/* myrep/noarch/RPMS # а как отучить cp работать как cp -i? не могу найти что-то;) genbasedir --topdir=myrep noarch myrep Дальше открой Синаптик; Настройки - Репозитории; там внизу добавь свой репозиторий с такими параметрами : Код URI - file:/home/juli/myrep Дистрибутив - noarch Раздел - myrep Жми OK, потом в Синаптике "Получить сведения" ('это может затянуться - из-за сетевых репозиториев). Когда получит, в поиске набери "julintux" - должны появиться пакеты брендинга. Теперь у тебя есть собственный репозиторий, как и положено серьёзному сборщику ![]() Сама сборка запускается так : Код cd /mpd # заходишь в сборочный каталог autoconf # подготовка ./configure --with-version=5.1 --with-distro=julintux.dvd # подгонка сборочной системы под требования ЮлинТукса make julintux.dvd # приказ собрать образ ЮлинТукса Вот тут и начинается собственно сборка; она может продолжаться час и даже два. Если завершится сообщением, что образ готов - хорошо, если в последних строках обнаружишь Error... - смотри, какая именно ошибка, будем разбираться. Независимо от результата, затем выполни команду Код make distclean чтобы убрать всяческие временые файлы, появившиеся при сборке. Если всё прошло успешно, то забирай из каталога ~/out/julintux.dvd готовый образ, записывай на DVD и устанавливай ![]() Что-то в ЮлинТуксе тебе непременно захочется переделать - а значит, подправляй профиль и собирай свой дистрибутив заново ![]() ______________________________________________________________________________ Вот так примерно. Приступая ко второму этапу обучения, имеем уже заведомо исправную систему сборки и готовый дистр, который надо просто подправлять; откатиться в случае чего есть куда. Так что инструкция по второму этапу вряд ли будет сложной. Что касается третьего этапа, то я и сам на нём ещё толком не освоился ![]() ![]() Думаю, что такие построенные на конкретных примерах поэтапные инструкции будут полезной добавкой к уже имеющейся документации по дистрострою. -------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
![]()
Сообщение
#2
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1661 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#3
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Глоб. Модератор Сообщений: 10149 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Пока у Юлианны последний звонок и всё прочее, да пока у них электричества опять нет... в общем, не завершив ещё первый этап, я уже сочинил инструкцию по второму
![]() Кстати, с термином "профиль" у новичков в самом деле возможны недоразумения; я тут истолковал его, как сумел, не уверен, что вполне правильно ![]() Итак, вот что пока получилось : _______________________________________________________________ Второй этап обучения. Что имеем? Готовый профиль - и собранный по нему первоначальный ЮлинТукс перед глазами. А что тебе нужно? Сделать на основе этого профиля свой собственный и собрать по нему уж точно свой ЮлинТукс ![]() Поэтому данная инструкция - о том, что нужно менять в профиле, исходя именно из этой достаточно скромной цели; а всестороннее рассмотрение вопроса отложим на третий этап. Правка профиля сводится к изменению некоторых файлов в /mpd и /mpd/profiles/pkg/lists. Важное примечание : обычно нужно править файл с расширением .in, а его двойника (то есть файл с тем же именем, но без расширения) не трогать. Например, бессмысленно напрямую что-то менять в файле julintux (эти изменения будут проигнорированы при сборке) - править надо файл julintux.in. Исключения (из числа рассматриваемых ниже файлов) - live и julive2 - у них двойников нет, так что их можно править напрямую. Вот это надо просто хорошенько запомнить; а к чему такие сложности - пока рассматривать не будем. И насчёт термина "профиль". Он здесь употребляется в двух смыслах : 1. Профиль ЮлинТукса, то есть совокупность всех файлов, которые ты добавляешь или изменяешь в /mpd и /mpd/profiles/pkg/lists, тем самым превращая изначальную сборочную систему в средство сборки именно ЮлинТукса. 2. Каждый файл в в /mpd/profiles/pkg/lists тоже именуется профилем. Чтобы не было путаницы, я их тут так и называю : файлы-профили. Итак, каталог /mpd. Файлы configure.ac (этот совсем особенный, у него даже .ac вместо .in) и use.mk.in можешь поглядеть, если интересно, а особенно абзацы julintux.dvd, use-julintux, use-julive2; но менять там что-либо сейчас ни к чему. А вот файл globals.mk.in можно подправить. А именно : Код INFO_ORIGIN=Juli Nagaeva INFO_PUBLISHER=Juli INFO_DISTRIBUTION=Julia Это данные о том, откуда взялся данный дистрибутив. Я вписал туда первое, что пришло в голову ![]() Это так, для разминки ![]() Когда ты выполняешь команду Код make julintux.dvd то тем самым даёшь указание найти в этом файле (точнее, в Makefile без .in... но не будем пока вдаваться в эти подробности) строку, начинающуюся с julintux.dvd: и сделать всё, что в ней прописано. Вот эта строка : Код julintux.dvd: | use-julintux use-julive2 main live install2 install-dvd5.@IMAGETYPE@ Она в самых общих чертах описывает дистрибутив, который следует собрать. Что в ней можно изменить? Коротко говоря, use-julintux, main и install2 предписывают собрать систему, предназначенную для установки на комп; если хочешь сделать чисто "живой диск", удали всё это; а install-dvd5 замени на live-cd. А use-julive2 и live создают файл, обеспечивающий работу сборки в Live-режиме; вот он, кстати, в корневом каталоге DVD ЮлинТукса - под названием live, и довольно большой - 360 мегабайт. Если Live-режим не нужен, то можно заметно сократить время сборки и размер образа, убрав из данной строки use-julive2 и live. В каталоге /mpd нам больше делать нечего, переходим в /mpd/profiles/pkg/lists. В находящихся тут файлах-профилях и перечислены все пакеты, которые будут включены в сборку (разумеется, они потащат за собой и пакеты, от которых зависят). Насколько я понимаю, в нашем случае для сборки инсталлируемой системы берутся пакеты из файлов-профилей base, kernel, xorg, install2, docs и julintux, а для сборки Live-системы - из live, kernel, xorg, docs и julive2. Чтобы изменить состав сборки, можно править base.in, kernel.in, xorg.in, live - но не очень нужно, во всяком случае, пока; да мне, кстати, и самому не мешало бы сначала получше разобраться в их содержимом. И julive2 (у него такое странное название потому что имя julive у меня уже занято сответствующим файлом-профилем Юлинукса) просмотри - может, в Live-режиме какие-то программы надо добавить или убрать. Но главное - файл julintux.in. Там - основной список программ, которые устанавливаются в комплекте с ЮлинТуксом. Я их более-менее разбил на категории, так что разберёшься, что к чему. Добавляй и удаляй что захочешь. Только имей в виду, что в названиях пакетов не должно быть никаких ошибок (иначе сборка сорвётся); лучше просто копировать эти названия, к примеру, из свойств пакета в Синаптике. И, наконец, после всего этого те же команды : Код cd /mpd autoconf ./configure --with-version=5.1 --with-distro=julintux.dvd make julintux.dvd # долгое ожидание.... make distclean И не слишком опасайся ошибиться : если даже вовсе поломаешь профиль, так что ничего не будет собираться, восстановить его в первоначальном виде не составит труда ![]() -------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.8.2025, 16:35 |