Přihlásit | Registrovat

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

Tenhle článek je „výcuc“ z článku Tvorba RPM. Až na vyjímku, 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:

~/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              Mandrivalinux
%_gpg_path              ~/.gnupg

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

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 mandrivu jsou předpřipraveny v adresářích cooker, jejich seznam naleznete na této adrese.

Tam najdete vysněný balíček nebo novinku v příslušném podadresáři SRPMS (hledáte zdrojový rpms balíček). Je to rozděleno do adresářů (main, contrib, jpackage, others) a dále dle CPU architektury (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 rozcestník na této adrese (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) rpm –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.

Mandriva Wiki
system/prikazovy_radek/tvorba_rpm_zkraceno.txt · Poslední úprava: 2011/01/29 09:05 autor: petos