Obsah

Vytváříme RPM řádně, a přitom snadno

Tenhle článek je „výcuc“ z článku Tvorba RPM - Mageia RPM HOWTO.

Až na výjimku, na kterou budete upozorněni, vše děláte jako obyčejní uživatelé, nikoli jako root.

Přípravné kroky

Nezbytné balíčky

Musíte mít nainstalovány tyto balíčky:

Vytvoření vyžadovaných složek

Pro kompilaci budete potřebovat mít ve vašem domovském adresáři následující adresářový strom:

Adresář:Popis:
~/rpm/BUILD - adresáře vytváření
~/rpm/RPMS - obsahuje adresáře pro každou architekturu, které budou obsahovat binární balíčky
~/rpm/RPMS/i586 - adresář pro uložení balíčků pro procesory i586
~/rpm/RPMS/x86_64 - adresář pro uložení balíčků pro procesory AMD64 (pokud nemáte, nepotřebujete ho)
~/rpm/RPMS/noarch - totéž pro noarch balíčky (bez závislosti na procesoru)
~/rpm/SOURCES - zdrojové soubory (např. mujbalicek.tar.bz2)
~/rpm/SPECS - spec soubory, ty musí být nejprve vytvořeny
~/rpm/SRPMS - zdrojové rpm po tvorbě balíčku
~/rpm/tmp - adresář pro dočasné soubory během tvorby balíčku

Poznámka: Adresářová struktura po ~/rpm/RPMS je pro rpm nezbytná. Jestliže neexistuje, obdržíte chybové hlášení. Pro jeho vytvoření můžete použít následující příkaz: mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/x86_64,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}

Soubory rpmrc a rpmmacros

V domovském adresáři si vytvořte soubor ~/.rpmmacros s tímto obsahem:

%_topdir                %(echo $HOME)/rpm
%_tmppath               %(echo $HOME)/rpm/tmp

%_signature             gpg
%_gpg_name              Mageia
%_gpg_path              ~/.gnupg

%packager               vase_jmeno_nebo_prezdivka <vas@email.cz>
%distribution           Mageia
%vendor                 Mageia

Dále tamtéž vytvořte soubor ~/.rpmrc:

buildarchtranslate: i386: i586
buildarchtranslate: i486: i586
buildarchtranslate: i586: i586
buildarchtranslate: i686: i586

A to je z přípravy vše.

Nejjednodušší cesta: ze souboru src.rpm

Nejjednodušším způsobem, jak se dobrat rpm balíčku, který jinak není k sehnání, je obstarat si soubor s příponou *.src.rpm. Pro Mageiu jsou předpřipraveny v adresářích Cauldron, jejich seznam naleznete na Cauldron Mirrors - i586, Cauldron Mirrors - x86_64.

Tam najdete vysněný balíček nebo novinku v příslušném podadresáři SRPMS zdrojový rpms (core, nonfree, tainted) a dále cpu architekturu (např. i586, x86_64, …). Stažený balíček uložte do libovolného adresáře.

V adresáři s balíčkem spustit příkaz rpm -ivh mujbalicek.src.rpm. Tím nainstalujete všechny zdrojové soubory do adresářového stromu, který jste vytvořili v přípravném kroku.

Soubory by jste měli najít v adresářích ~/rpm/SPECS a ~/rpm/SOURCES.

Nyní se přesuňte do adresáře ~/rpm/SPECS a spusťte tam příkaz: rpmbuild -ba nazev_balicku.spec
Název bude stejný jako původní název balíčku *.src.rpm, ale přípona bude jiná - *.spec.

Poslední příkaz spustil kompilaci balíčku. Výsledky najdete v adresářích ~/rpm/RPMS/i586/ (respektive ~/rpm/RPMS/x86_64/) a ~/rpm/SRPMS/. V případě selhání kompilace nahlédněte do kompletního textu.

Nejjednodušší cesta: ze souboru src.rpm II

V tomto případě se lze vyhnout přípravě adresářového stromu /home/user/rpm/. Po stažení balíčku src.rpm z Cauldron Mirrors - i586, Cauldron Mirrors - x86_64 (na vybraném webu hledejte v podadresáři SRPMS) napíšete v adresáři s balíčkem postupně tyto dva příkazy:

Konzole

  • urpmi balicek.src.rpm

    - nainstaluje závislosti

  • rpmbuild --rebuild balicek.src.rpm

    - vyrobí zkompilovaný rpm balíček

Kde bude balíček k dispozici pro nainstalování, vypíše instalační script na obrazovku. Zpravidla je to v příslušném podadresáři /usr/src/rpm/RPMS/ dle Vaší architektury. Pak stačí v tomto adresáři spustit příkaz:

Konzole

urpmi balicek.rpm

a máte ho v systému.