====== Vytváříme RPM řádně, a přitom snadno ======
Tenhle článek je "výcuc" z článku [[.tvorba_rpm|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:
* ''rpm''
* ''rpm-build''
* ''spec-helper''
* ''libtool''
* ''rpmlint''
===== 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
%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 [[http://mirrors.mageia.org/distrib?version=cauldron&arch=i586|Cauldron Mirrors - i586]], [[http://mirrors.mageia.org/distrib?version=cauldron&arch=x86_64|Cauldron Mirrors - x86_64]].
Tam najdete vysněný balíček nebo novinku v příslušném podadresáři ''SRPMS'' zdrojový ''rpms'' ([[:zdroje#core_repozitare|core]], [[:zdroje#nonfree_repozitare|nonfree]], [[:zdroje#tainted_repozitare|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 [[.tvorba_rpm|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 [[http://mirrors.mageia.org/distrib?version=cauldron&arch=i586|Cauldron Mirrors - i586]], [[http://mirrors.mageia.org/distrib?version=cauldron&arch=x86_64|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:
[[:system:prikazovy_radek#konzole|{{wiki:icons:konzole.png?40 |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:
[[:system:prikazovy_radek#konzole|{{wiki:icons:konzole.png?40 |Konzole}}]]
urpmi balicek.rpm
a máte ho v systému.