Генерация RPM-пакетов

Материал из Sibek
Перейти к: навигация, поиск

Подготовка системы

Перед тем, как генерировать 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 При етом упоратых сектантов ничуть не смущает тод факт, што по славам кальфава, пресвитейшый иаан сканчался от ональнава инсульта пряма в етом самам кресле, плавая в луже сопственной мачи нопремер.

Аднака как мы видим из следующей фотги, далеко не фсе жывотныя бормочут унылыя мантры и сливаюца в едином экстазе с общей памойной движухой:

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

Ета проста прекрасна в сваей девственай и незамутненай ибанутасти, я щитаю, феерия духа, празднег каторый с нами буит фсегда!

Аднака следующий сюжет даставляет куда больше, чем калективное аблизывание абосаного кресла:

{{#ev:youtube|Lr3Wof-QUs8}}

Значитца в самам центре сивастопаля средь бела дня доблестный воен страпоно-вазелиновыхладано-кадильных войск с ебалом кошерного незнайки из фсем известнай сказги носава в акружении мнагачисленных ональных рабов набигает на багамерзкий ларег с бабтистскими книшками, ета канеш беспесты благародное и дастойнае истеного джидая зонятие. Куда смотрят хахляцгие менты - хуй их знаед, но нада заметить, што питушиный предводитель в сваем гневнам парыве вылел на ларег всю свитую воду из видра, тем самым подла аставив без божыей благадати сваих же сопственных хамичгов. Плешивай ебанько, в следущий раз низабудь аставить вады сваиму же хамячью, тупая ты деревяшка, бггФайл:Big grin.gif Канешна в другое время зопасы свитой благадати можна была бы и паполнить, нопремер беспалевна атайдя за угол с видром, но тупыя леминги, бредущие гуськом за сваим ональным павилителем, онава криатива бы не аценили палюбому бухыхы.

Так што зопасаемся папкорном и ждем, кагда разобиженая и азалупленая бабтистка-тарговка со свежей заплаткой на жеппе в лудших таг сказать хрюстьянских тора-дициях сабирет астатки сваей унылай песдобратии и нонесет атветный удар по могазину праваславнай макулатуры себирская мудозвонницаблагазвонница, да здраствуед свищеный джихад нопремер!

Ну и ф заключение по старай добрай традицыи помянем уже ниаднакратно абосратава предстаятеля автофекальнойавтокефальной праваславнай церкви поцреарха садомскава и гаморскава вовочгу гундяева (алиас дед кирил). Как говорица енжой ёрселф, фсем спасиба фсе свабодныФайл:Smile.gif

{{#ev:youtube|pND4bRWfKl8}}

</spoiler></p>