====== 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.