Генерация RPM-пакетов
Содержание
Подготовка системы
Перед тем, как генерировать rpm-пакеты, необходимо произвести ряд подготовительных действий: установить из репозитория набор инструментов для разработчиков и создать отдельную учётную запись, из-под которой и будет происходить сборка rpm-пакетов.
Запустите эмулятор терминала и войдите в режим суперпользователя:
$ su -
Добавьте в список источников приложений репозиторий Sibek:
# wget http://www.sibek.ru/repo/17/sibek.repo -O /etc/yum.repos.d/sibek.repo
Установите все необходимые зависимости для генерации пакетов командой:
# yum install @development-tools fedora-packager rpm-sign bmgui-devreps
Создайте нового пользователя с именем rpmbuild и установите ему пароль, выполнив:
# useradd rpmbuild # passwd rpmbuild
после чего зайдите в систему под учётной записью созданного пользователя, используя команду:
$ su - rpmbuild
Создайте дерево каталогов, в котором будут размещаться файлы для генерации пакетов:
$ rpmdev-setuptree
После выполнения этой команды в домашнем каталоге пользователя rpmbuild появится каталог rpmbuild с подкаталогами BUILD, RPMS, SOURCES, SPECS, SRPMS. Также создастся файл ~/.rpmmacros, который используется для установки различных опций при генерации пакетов.
Настройте систему сборки на использование цифровых подписей пакетов. Для этого отредактируйте файл ~/.rpmmacros, добавив в конец файла следующие строки:
%_signature gpg %_gpg_name Sibek %debug_package %{nil}
Получите у системного администратора пару GPG-ключей и сохраните их в домашнем каталоге под именами ~/sibek_gpg_key_pub.gpg и ~/sibek_gpg_key_sec.gpg соответственно.
Импортируйте полученные ключи в базу данных GnuPG, выполнив:
$ gpg --import ~/sibek_gpg_key_pub.gpg $ gpg --import --allow-secret-key-import ~/sibek_gpg_key_sec.gpg
Генерация пакетов
Для того, чтобы создать пакет, необходим spec-файл, который содержит всю информацию, требуемую для сборки и установки/удаления пакета. В общем случае, необходимо поместить все исходные файлы в каталог ~/rpmbuild/SOURCES, spec-файл - в каталог ~/rpmbuild/SPECS, а затем запустить утилиту rpmbuild, которая выполнит генерацию пакета.
Находясь под пользователем rpmbuild, загрузите необходимые spec-файлы с github-репозитория в каталог ~/rpmbuild/SPECS:
$ git clone https://github.com/w1r0x/bmgui_specs.git ~/rpmbuild/SPECS
Сборка пакета bmgui
Загрузите исходные файлы проекта bmgui, выполнив команду:
$ git clone https://github.com/w1r0x/bmgui.git
Получите текущую версию проекта bmgui из соответствующего spec-файла и сохраните ее в переменной окружения BMGUI_VERSION:
$ export BMGUI_VERSION=`grep "Version:" ~/rpmbuild/SPECS/bmgui.spec | gawk '{ print $2 }'`
Переименуйте каталог проекта в соответствии с его текущей версией:
$ mv bmgui bmgui-$BMGUI_VERSION
Заархивируйте проект в bzip2-архив с расширением tbz и поместите его в каталог для исходных кодов ~/rpmbuild/SOURCES, выполнив:
$ tar -cjf ~/rpmbuild/SOURCES/bmgui-$BMGUI_VERSION.tbz bmgui-$BMGUI_VERSION --exclude=bmgui-$BMGUI_VERSION/.git
Перейдите в каталог ~/rpmbuild/SPECS и выполните сборку пакета:
$ cd ~/rpmbuild/SPECS $ rpmbuild -ba --sign bmgui.spec
Замечание. При появлении запроса ключевой фразы Enter pass phrase нажмите Enter.
Сборка пакета bmgui-fw
Загрузите исходные файлы проекта bmgui-fw, выполнив команду:
$ git clone https://github.com/w1r0x/bmgui-fw.git
Получите текущую версию проекта bmgui-fw из соответствующего spec-файла и сохраните ее в переменной окружения BMGUI_FW_VERSION:
$ export BMGUI_FW_VERSION=`grep "Version:" ~/rpmbuild/SPECS/bmgui-fw.spec | gawk '{ print $2 }'`
Переименуйте каталог проекта в соответствии с его текущей версией:
$ mv bmgui-fw bmgui-fw-$BMGUI_FW_VERSION
Заархивируйте проект в bzip2-архив с расширением tbz и поместите его в каталог для исходных кодов ~/rpmbuild/SOURCES, выполнив:
$ tar -cjf ~/rpmbuild/SOURCES/bmgui-fw-$BMGUI_FW_VERSION.tbz bmgui-fw-$BMGUI_FW_VERSION --exclude=bmgui-fw-$BMGUI_FW_VERSION/.git
Перейдите в каталог ~/rpmbuild/SPECS и выполните сборку пакета:
$ cd ~/rpmbuild/SPECS $ rpmbuild -ba --sign bmgui-fw.spec
Замечание. При появлении запроса ключевой фразы Enter pass phrase нажмите Enter.
Обновление и синхронизация репозитория
Создайте каталог ~/rpmbuild/repo/17 с подкаталогами x86_64 и SRPMS для rpm-репозитория:
$ mkdir -p ~/rpmbuild/repo/17/x86_64 ~/rpmbuild/repo/17/SRPMS
Скопируйте в него собранные rpm-пакеты, выполнив команды:
$ cp ~/rpmbuild/RPMS/x86_64/*.rpm ~/rpmbuild/repo/17/x86_64 $ cp ~/rpmbuild/SRPMS/*.rpm ~/rpmbuild/repo/17/SRPMS
Создайте или обновите rpm-репозиторий командой:
$ createrepo ~/rpmbuild/repo/17
Синхронизируйте rpm-репозиторий с сервером при помощи программы rsync:
$ rsync -e ssh --progress -lzuogthvrO --compress-level=9 --delete-after ~/rpmbuild/repo/17 \ <name>@192.168.32.2:/home/jails/new_sibek_ru/usr/local/www/apache22/data/repo/17
ЧАС ПОПА - информацыоно-оналитическая педерача. <spoiler text="Показать"> <p>Итаг вод наглядное свидетельство таво, к чему приводит атмена карательнай психиатрии:
Абъясняю суть драмы - значитца некий усатай еврейский апесдал кальфав с отвисшим ниже коленак жывотом невазбранна падарил барадатым клоунам кресло, асвищенае палавой жеппай самаво свитетеля иаана шанхайскава. И вод теперь шелудивыя мокаке со сворай полоумных хамичгов с пенай на мазолистых губах аблизывают крашыные доски и пакланяюца Иво Креслейшеству, бгг какой пазор, какой стыд ебучайФайл:Smile.gif При етом упоратых сектантов ничуть не смущает тод факт, што по славам кальфава, пресвитейшый иаан сканчался от ональнава инсульта пряма в етом самам кресле, плавая в луже сопственной мачи нопремер.
Аднака как мы видим из следующей фотги, далеко не фсе жывотныя бормочут унылыя мантры и сливаюца в едином экстазе с общей памойной движухой:
Картинко маслом - паджав ачько, пануро переминаюца с наги на нагу унылыя сектанты с постными йоблами, а в глазах четается лютый ахуй и песдец в адном флаконе по поваду праисхадящей вакруг всиобщей шизафрении. Кстате а вод и сам виновнег таржества, Даун, Паркинсон и Альцгеймер проста плачуд от умиления при виде онава поциента:
Ета проста прекрасна в сваей девственай и незамутненай ибанутасти, я щитаю, феерия духа, празднег каторый с нами буит фсегда!
Аднака следующий сюжет даставляет куда больше, чем калективное аблизывание абосаного кресла:
Значитца в самам центре сивастопаля средь бела дня доблестный воен страпоно-вазелиновыхладано-кадильных войск с ебалом кошерного незнайки из фсем известнай сказги носава в акружении мнагачисленных ональных рабов набигает на багамерзкий ларег с бабтистскими книшками, ета канеш беспесты благародное и дастойнае истеного джидая зонятие.
Куда смотрят хахляцгие менты - хуй их знаед, но нада заметить, што питушиный предводитель в сваем гневнам парыве вылел на ларег всю свитую воду из видра, тем самым подла аставив без божыей благадати сваих же сопственных хамичгов. Плешивай ебанько, в следущий раз низабудь аставить вады сваиму же хамячью, тупая ты деревяшка, бггФайл:Big grin.gif Канешна в другое время зопасы свитой благадати можна была бы и паполнить, нопремер беспалевна атайдя за угол с видром, но тупыя леминги, бредущие гуськом за сваим ональным павилителем, онава криатива бы не аценили палюбому бухыхы.
Так што зопасаемся папкорном и ждем, кагда разобиженая и азалупленая бабтистка-тарговка со свежей заплаткой на жеппе в лудших таг сказать хрюстьянских тора-дициях сабирет астатки сваей унылай песдобратии и нонесет атветный удар по могазину праваславнай макулатуры себирская мудозвонницаблагазвонница, да здраствуед свищеный джихад нопремер!
Ну и ф заключение по старай добрай традицыи помянем уже ниаднакратно абосратава предстаятеля автофекальнойавтокефальной праваславнай церкви поцреарха садомскава и гаморскава вовочгу гундяева (алиас дед кирил). Как говорица енжой ёрселф, фсем спасиба фсе свабодныФайл:Smile.gif
</spoiler></p>