IPB

Здравствуйте, гость ( Вход | Регистрация )

> Пишем поэтапную инструкцию по сборке
Поделиться
ИВК
сообщение 24.5.2011, 19:53
Сообщение #1


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10149
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


По-моему, была бы очень кстати трёхэтапная инструкция по сборке первого собственного дистрибутива. А именно :
Первый этап : сборка по профилю-заготовке, который предоставлен кем-то в готовом виде. Цель : быстро настроить, освоить и опробовать сборочную систему на своём компьютере и полюбоваться на результат.
Второй этап : сборка простого небольшого дистра по своему профилю, сделанному на основе упомянутого профиля-заготовки. Цель : освоить основные приёмы работы с профилями.
Третий этап : сборка уже такого дистра, какой тебе хочется иметь - любого объёма и любой сложности. Цель : стать серьёзным самостоятельным сборщиком.

Я считаю, разбиение на этапы заметно облегчает обучение.

Идея возникла из практики. Поскольку Юлианна взялась делать свой дистрибутив (это будет не новая версия Юлинукса, как сначала предполагалось, а именно собственная Юлина сборка под названием ЮлинТукс smile.gif), то от меня потребовалась инструкция. Вот тогда я и подумал, что проще двигаться поэтапно.
Инструкция для первого этапа уже написана и проверена в деле.
Она не про сборку абстрактного дистра абстрактным сборщиком на абстрактном компьютере, а про сборку первой версии ЮлинТукса Юлианной на её домашнем компе, параметры коего известны. То есть тут всё рассматривается на вполне конкретном примере, что очень упрощает дело. Чтобы использовать инструкцию в иных условиях, надо её лишь немного изменить. Собственно, это в любом случае придётся делать : когда Юля настроит, освоит и опробует систему сборки на своём компьютере, то будет очень странным не использовать эту систему для создания давно задуманного Баклановского школьного/сельского дистрибутива, а тут, надеюсь, и ВладВлад подключится, вместе со школьными компами. Вот тогда и сделаем другой вариант инструкции, исходя опять же из новых конкретных условий. Это небольшая работа (во всяком случае, мне не лень её проделать), зато новичкам не надо мучиться, подгоняя обобщённые указания под свою обстановку. Не так уж много желающих заняться сборкой, чтобы нельзя было каждому дать подходящий именно для него вариант инструкции smile.gif

У себя я уже собрал ЮлинТукс строго по данной инструкции (то есть прикидывался, что мне её кто-то дал в готовом виде, а сам типа не знаю ничего biggrin.gif; правда, приходилось на ходу подгонять её под свои условия), а Юля половину её тоже выполнила, вскоре закончит, как только время найдёт.

Вот эта инструкция по первому этапу освоения дистростроя ( она, несомненно, далека от идеала, так что ожидаю дополнений/исправлений) :

_____________________________________________________________________________

Итак, собирать ЮлинТукс Юля будет в Юлинуксе smile.gif Он пока установлен в небольшой раздел, который нежелательно чем-то забивать. Зато имеется почти пустой раздел sda5 аж в 66 гигов, вот его и используем для сборки.
Примечание : команды, упомянутые ниже, выполняются от обычного юзера (и предполагается, что он в своём домашнем каталоге), если прямо не указано иное.

Итак, Юля, приступаем smile.gif

Сначала надо скачать 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 - должен открыться каталог, в котором и будешь производить сборку. Вставь туда файлы, которые я пришлю; в них и находится тот самый профиль ЮлинТукса, рассматривать который изнутри мы пока не станем, отложим это на второй этап smile.gif (можно бы и целиком переделанный m-p-d прислать, но от меня по gprs несколько мегабайт выгрузить - проблема).

И ещё в консоли от рута :
Код
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 smile.gif)

Для использования своего брендинга желательно создать свой репозиторий :
Код
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" - должны появиться пакеты брендинга.
Теперь у тебя есть собственный репозиторий, как и положено серьёзному сборщику smile.gif

Сама сборка запускается так :
Код
cd /mpd # заходишь в сборочный каталог
autoconf # подготовка
./configure --with-version=5.1 --with-distro=julintux.dvd # подгонка сборочной системы под требования ЮлинТукса
make julintux.dvd # приказ собрать образ ЮлинТукса


Вот тут и начинается собственно сборка; она может продолжаться час и даже два. Если завершится сообщением, что образ готов - хорошо, если в последних строках обнаружишь Error... - смотри, какая именно ошибка, будем разбираться. Независимо от результата, затем выполни команду
Код
make distclean

чтобы убрать всяческие временые файлы, появившиеся при сборке.

Если всё прошло успешно, то забирай из каталога ~/out/julintux.dvd готовый образ, записывай на DVD и устанавливай smile.gif
Что-то в ЮлинТуксе тебе непременно захочется переделать - а значит, подправляй профиль и собирай свой дистрибутив заново smile.gif Для чего потребуется инструкция уже по второму этапу.

______________________________________________________________________________


Вот так примерно. Приступая ко второму этапу обучения, имеем уже заведомо исправную систему сборки и готовый дистр, который надо просто подправлять; откатиться в случае чего есть куда. Так что инструкция по второму этапу вряд ли будет сложной. Что касается третьего этапа, то я и сам на нём ещё толком не освоился smile.gif Но я же не утверждаю, что один могу выполнить всё, что предлагаю; давайте вместе smile.gif
Думаю, что такие построенные на конкретных примерах поэтапные инструкции будут полезной добавкой к уже имеющейся документации по дистрострою.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 7.8.2025, 10:25