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:
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 <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:
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:
urpmi balicek.rpm
a máte ho v systému.