Mageia CZ&SK wiki

Wiki pro Oficiální české a slovenské stránky komunitní linuxové distribuce Mageia

Uživatelské nástroje

Nástroje pro tento web


system:prikazovy_radek:tvorba_rpm

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
system:prikazovy_radek:tvorba_rpm [2012/09/23 09:18] – opravy překlepů yullawsystem:prikazovy_radek:tvorba_rpm [2015/07/06 15:57] (aktuální) – revize, + link na CZ doku. o RPM yullaw
Řádek 2: Řádek 2:
 ====== Úvod ====== ====== Úvod ======
 <WRAP round info> <WRAP round info>
-Toto HowTo bylo napsáno s cílem pomoci lidem vytvářet softwarové balíčky, které lze začlenit do distribuce [[:start|Mageia]]. Důraz bude kladen na odlišnosti [[:software:instalace:rpm|rpm balíčků]] Mageii od jiných distribucí využívajících ''rpm''. Tento dokument by měl být užitečný vývojářům Mageii, stejně jako ostatním lidem. \\ \\+Toto HowTo bylo napsáno s cílem pomoci lidem vytvářet softwarové balíčky, které lze začlenit do distribuce [[:start|Mageia]]. Důraz bude kladen na odlišnosti [[:software:instalace:rpm|rpm balíčků]] Mageie od jiných distribucí využívajících ''rpm''. Tento dokument by měl být užitečný vývojářům Mageie, stejně jako ostatním lidem. \\ \\
 Distribuce [[:start|Mageia]] je vytvářená pomoci různých spolupracovníků, testerů a překladatelů. Pro více informací se, prosím, podívejte na stránku [[https://wiki.mageia.org/en/Contributing|přispívání (en)]]. Distribuce [[:start|Mageia]] je vytvářená pomoci různých spolupracovníků, testerů a překladatelů. Pro více informací se, prosím, podívejte na stránku [[https://wiki.mageia.org/en/Contributing|přispívání (en)]].
 </WRAP> </WRAP>
Řádek 10: Řádek 10:
 </WRAP> </WRAP>
  
-===== Předmluva ===== +====== Předmluva ====== 
-V tomto dokumentu se předpokládá, že čtenář se umí linuxu orientovat. Zná základní příkazy, adresářovou strukturu a má zvládnutou  přinejmenším instalaci rpm balíčků.+V tomto dokumentu se předpokládá, že se čtenář dokáže Linuxu orientovat. Zná základní příkazy, adresářovou strukturu a má zvládnutou  přinejmenším instalaci rpm balíčků.
  
 Tento dokument je koncipován jako návod krok za krokem k získání [[:software:instalace:rpm|rpm balíčku]], který se hladce začlení do distribuce Mageia, buď z předchozího zdrojového [[:software:instalace:rpm|rpm]] nebo ze zdrojového souboru ''tar''. Tento dokument je koncipován jako návod krok za krokem k získání [[:software:instalace:rpm|rpm balíčku]], který se hladce začlení do distribuce Mageia, buď z předchozího zdrojového [[:software:instalace:rpm|rpm]] nebo ze zdrojového souboru ''tar''.
Řádek 35: Řádek 35:
   * Druhý typ souboru (''*.<architektura>.rpm'') obsahuje binární kompilační program a všechny soubory (dokumentace, konfigurační soubory, ikony,...), které budou instalovány na cílový systém. Také obsahuje proceduru, které zajistí uloženi souborů na správná místa a akce, které se musí vykonat, aby byl program funkční.   * Druhý typ souboru (''*.<architektura>.rpm'') obsahuje binární kompilační program a všechny soubory (dokumentace, konfigurační soubory, ikony,...), které budou instalovány na cílový systém. Také obsahuje proceduru, které zajistí uloženi souborů na správná místa a akce, které se musí vykonat, aby byl program funkční.
  
-===== Instalace software ===== +====== Instalace softwaru ====== 
-==== Základy ====+===== Základy =====
 Původně byl program ''rpm'' navržen pro práci v [[http://www.redhat.com/|Red Hat Linux]], ale pracuje i v dalších distribucích založených na ''rpm'': [[http://www.mageia.org|Mageia]], [[http://www.mandrivalinux.com/|Mandriva Linux]], [[http://www.suse.com/index_us.html|Suse]] atd.; ''rpm'' je již na těchto systémech nainstalován. Původně byl program ''rpm'' navržen pro práci v [[http://www.redhat.com/|Red Hat Linux]], ale pracuje i v dalších distribucích založených na ''rpm'': [[http://www.mageia.org|Mageia]], [[http://www.mandrivalinux.com/|Mandriva Linux]], [[http://www.suse.com/index_us.html|Suse]] atd.; ''rpm'' je již na těchto systémech nainstalován.
  
Řádek 43: Řádek 43:
 Budete-li binární ''rpm'' budete sestavovat pro Mageiu, nemusí správně fungovat v dalších distribucích, přestože Mageia dělá maximum pro kompatibilitu s Red Hat. Budete-li binární ''rpm'' budete sestavovat pro Mageiu, nemusí správně fungovat v dalších distribucích, přestože Mageia dělá maximum pro kompatibilitu s Red Hat.
  
-==== Sestavení pro Mageiu ==== +===== Sestavení pro Mageiu ===== 
-Tvorba balíčků pro Cauldron (tedy vývojovou verzi Mageii) je vždy náchylná k malým záplatám a vylepšením používaného programu ''rpm''. Měli byste nainstalovat následující balíčky:+Tvorba balíčků pro Cauldron (tedy vývojovou verzi Mageie) je vždy náchylná k malým záplatám a vylepšením používaného programu ''rpm''. Měli byste nainstalovat následující balíčky:
   * balíček ''rpm'' od Red Hatu s našimi záplatami   * balíček ''rpm'' od Red Hatu s našimi záplatami
   * balíček ''rpm-build'' obsahující scripty používané k tvorbě balíčků   * balíček ''rpm-build'' obsahující scripty používané k tvorbě balíčků
Řádek 51: Řádek 51:
   * balíček ''rpmlint'' zajišťující kontrolu platnosti vygenerovaného ''src.rpm'' souboru   * balíček ''rpmlint'' zajišťující kontrolu platnosti vygenerovaného ''src.rpm'' souboru
  
-===== Přípravné úkoly ===== +====== Přípravné úkoly ====== 
-==== Instalace nezbytných balíčků ====+===== Instalace nezbytných balíčků =====
 Pro tvorbu rpm balíčků musíte mít nainstalovánu příslušnou sadu programů. Pro pokyny k instalaci viz [[http://wiki.mandriva.com/en/Docs/Basic_tasks/Installing_and_removing_software|Installing and removing software]] (nebo návody na [[http://www.mandrivalinux.cz/modules/dokuwiki/doku.php?id=instalace-software|této wiki]]). Pro tvorbu rpm balíčků musíte mít nainstalovánu příslušnou sadu programů. Pro pokyny k instalaci viz [[http://wiki.mandriva.com/en/Docs/Basic_tasks/Installing_and_removing_software|Installing and removing software]] (nebo návody na [[http://www.mandrivalinux.cz/modules/dokuwiki/doku.php?id=instalace-software|této wiki]]).
-==== Vytvoření požadovaných složek ==== +===== Vytvoření požadovaných složek ===== 
-K sestavování balíčků potřebuje program rpm speciální adresářový strom ve vašem domovském adresáři. Tento strom může být vytvořen následujícím příkazem (na jednom řádku):+K sestavování balíčků potřebuje program ''rpm'' speciální adresářový strom ve vašem domovském adresáři. Tento strom může být vytvořen následujícím příkazem (jednom řádku):
  
 [[:system:prikazovy_radek#konzole|{{wiki:icons:konzole.png?40 |Konzole}}]] [[:system:prikazovy_radek#konzole|{{wiki:icons:konzole.png?40 |Konzole}}]]
Řádek 77: Řádek 77:
 <wrap info>Adresářová struktura po ''~/rpm/RPMS'' je pro ''rpm'' nezbytná. Jestliže neexistuje, obdržíte chybové hlášení.</wrap> <wrap info>Adresářová struktura po ''~/rpm/RPMS'' je pro ''rpm'' nezbytná. Jestliže neexistuje, obdržíte chybové hlášení.</wrap>
  
-==== Tvorba souboru .rpmmacros ====+===== Tvorba souboru .rpmmacros =====
 K tvorbě balíčků potřebujete mít v domovském adresáři konfigurační soubor ''.rpmmacros'': K tvorbě balíčků potřebujete mít v domovském adresáři konfigurační soubor ''.rpmmacros'':
  
Řádek 137: Řádek 137:
 BUILD:  BUILD: 
 </code> </code>
-Ve výpisu vidíme, že ''rpm'' nainstaloval do našeho adresářového stromu pro tvorbu ''rpm'' zdrojový soubor ktron-4.5.95.tar.bz2 a soubor ''spec'' Ještě před tvorbou balíčku novější verze může být pro vás přínosem, jestliže si znovu vytvoříte balíčky současných verzí, abyste lépe rozuměli jak je balíček sestaven a kompilován. Magický příkaz pro sestavení balíčku je ''rpmbuild'' s volbou ''buildall'':+Ve výpisu vidíme, že ''rpm'' nainstaloval do našeho adresářového stromu pro tvorbu ''rpm'' zdrojový soubor ''ktron-4.5.95.tar.bz2'' a soubor ''spec'' Ještě před tvorbou balíčku novější verze může být pro vás přínosem, jestliže si znovu vytvoříte balíčky současných verzí, abyste lépe rozumělijak je balíček sestaven a kompilován. Magický příkaz pro sestavení balíčku je ''rpmbuild'' s volbou ''buildall'':
  
 [[:system:prikazovy_radek#konzole|{{wiki:icons:konzole.png?40 |Konzole}}]] [[:system:prikazovy_radek#konzole|{{wiki:icons:konzole.png?40 |Konzole}}]]
Řádek 161: Řádek 161:
  
 ===== Ze zdrojového souboru =====  ===== Ze zdrojového souboru ===== 
-Najdete-li například na [[http://freecode.com/|Freecode]] nebo [[http://sourceforge.net/|Sourceforge]] zajímavý program, který upozorní, že čaj je hotový, můžete chtít zpřístupnit ho všem uživatelům Mageii, kteří rádi pijí čaj. Nejlepším způsobem je nejspíš vytvořit pro něj ''rpm'' balíček podle standardů Mageii.+Najdete-li například na [[http://freecode.com/|Freecode]] nebo [[http://sourceforge.net/|Sourceforge]] zajímavý program, který upozorní, že čaj je hotový, můžete ho chtít zpřístupnit všem uživatelům Mageie, kteří rádi pijí čaj. Nejlepším způsobem je nejspíš vytvořit pro něj ''rpm'' balíček podle standardů Mageie.
  
 Stáhněte tarball a uložte jej v adresáři ''SOURCES''. Stáhněte tarball a uložte jej v adresáři ''SOURCES''.
Řádek 168: Řádek 168:
   * **//Licence//**: - dnes převažuje GPL licence, nicméně existuje i sada v současnosti používaných ne-GPL licencí. Pečlivě zkontrolujte licenci software a ujistěte se, že je možné včlenit program do distribuce a ve kterém úložišti: [[:zdroje#core_repozitare|core]] (bez licence), [[:zdroje#nonfree_repozitare|nonfree]] (non-free licence) nebo [[:zdroje#tainted_repozitare|tainted]] (záležitostmi v oblasti patentů uvnitř). Nelze přijmout uzavřený (non-open) software. Také nemůžeme přijmout program, jehož licence neumožňuje volnou distribuci. <wrap important>Dávejte na takové programy pozor!</wrap> Seznam přijatelných licencí lze nalézt na stránce [[https://wiki.mageia.org/en/Licensing_policy|Mageia Licences]].   * **//Licence//**: - dnes převažuje GPL licence, nicméně existuje i sada v současnosti používaných ne-GPL licencí. Pečlivě zkontrolujte licenci software a ujistěte se, že je možné včlenit program do distribuce a ve kterém úložišti: [[:zdroje#core_repozitare|core]] (bez licence), [[:zdroje#nonfree_repozitare|nonfree]] (non-free licence) nebo [[:zdroje#tainted_repozitare|tainted]] (záležitostmi v oblasti patentů uvnitř). Nelze přijmout uzavřený (non-open) software. Také nemůžeme přijmout program, jehož licence neumožňuje volnou distribuci. <wrap important>Dávejte na takové programy pozor!</wrap> Seznam přijatelných licencí lze nalézt na stránce [[https://wiki.mageia.org/en/Licensing_policy|Mageia Licences]].
  
-  * ** //Komprimace tarballu// **: - s ohledem na minimalizaci práce <wrap todo>se doporučuje</wrap> použít původní tarball bez jakýchkoli modifikací. Jsou-li zdrojové soubory poskytované ve více různých komprimačních formátech, obvykle volíme ''.tar.bz2'' nebo lepší kompresní algoritmus ''tar.xz''. Vyhýbejte se komprimaci záplat v textových formátech (vytvořené např. programem ''diff'' a podobnými) a další konfiguračních záznamů / script (textových souborů), které obvykle zabírají malý prostor, zatímco komprimace komplikují kontrolu změn v Subversion diffs (a Subversion také používá nějakou formu komprimace). <WRAP important> Z bezpečnostních důvodu důrazně doporučujeme u balíčků s vysokým bezpečnostním rizikem neupravovat původní zdrojový soubor, bude-li to měnit kontrolní součet (checksum) souboru. Pro tyto druhy balíčků doporučujeme ponechat původní formu (formát) souboru tak, aby kdykoli bylo možné pomocí ''md5sum''/''gpg'' porovnat hodnoty s těmi, které jsou uvedeny na stránkách poskytovatele programu uvedených v sekci download. Jedním příkladem, kde lze využít výjimky byl např. ''OpenSSH''.</WRAP>+  * ** //Komprimace tarballu// **: - s ohledem na minimalizaci práce <wrap todo>se doporučuje</wrap> použít původní tarball bez jakýchkoli modifikací. Jsou-li zdrojové soubory poskytované ve více různých komprimačních formátech, obvykle volíme ''.tar.bz2'' nebo lepší kompresní algoritmus ''tar.xz''. Vyhýbejte se komprimaci záplat v textových formátech (vytvořené např. programem ''diff'' a podobnými) a dalších konfiguračních záznamů ''/ script'' (textových souborů), které obvykle zabírají malý prostor, zatímco komprimace komplikují kontrolu změn v Subversion diffs (a Subversion také používá nějakou formu komprimace). <WRAP important> Z bezpečnostních důvodu důrazně doporučujeme u balíčků s vysokým bezpečnostním rizikem neupravovat původní zdrojový soubor, bude-li to měnit kontrolní součet (checksum) souboru. Pro tyto druhy balíčků doporučujeme ponechat původní formu (formát) souboru tak, aby kdykoli bylo možné pomocí ''md5sum''/''gpg'' porovnat hodnoty s těmi, které jsou uvedeny na stránkách poskytovatele programu uvedených v sekci download. Jedním příkladem, kde lze využít výjimky byl např. ''OpenSSH''.</WRAP>
  
 ===== Obsah souboru spec ===== ===== Obsah souboru spec =====
Řádek 260: Řádek 260:
 Jméno je obvykle zvoleno podle názvu hlavního binárního balíčku, ačkoli postačujícím důvodem může být i známost jiného názvu. Jméno je obvykle zvoleno podle názvu hlavního binárního balíčku, ačkoli postačujícím důvodem může být i známost jiného názvu.
  
-Verze je číslo z nezáplatovaného zdroje. Jde o číslo verze z jméno v původním komprimovaném souboru: ''jméno-verze.tar.gz''.+Verze je číslo z nezáplatovaného zdroje. Jde o číslo verze z jména v původním komprimovaném souboru: ''jméno-verze.tar.gz''.
  
-Vydání (release) je číslo následované písmeny ''mga1'' (znamenající "Mageia 1"; toto je naprosto nezbytné) je přírůstkové číslo zvyšující se o jednu při každém dalším sestavení balíčku. Sestavení se může opakovat kvůli záplatě použité na zdroj, úprava souboru ''spec'', přidání ikon atp.+Vydání (release) je číslo následované písmeny ''mga1'' (znamenající "Mageia 1"; toto je naprosto nezbytné) je přírůstkové číslo zvyšující se o jednu při každém dalším sestavení balíčku. Sestavení se může opakovat kvůli záplatě použité ve zdroji, úprava souboru ''spec'', přidání ikon atp.
  
 <code> <code>
Řádek 270: Řádek 270:
  
 <code> Source0:        http://www.tuxedo.org/~esr/gif2png/%{name}-%{version}.tar.bz2 </code> <code> Source0:        http://www.tuxedo.org/~esr/gif2png/%{name}-%{version}.tar.bz2 </code>
-Tento řádek říká, který zdrojový soubor byl použit pro vytvoření ''rpm'' balíčku. Všimněte si, že před jménem souboru předchází kompletní URL (není povinné), ukazující kde je původní zdroj k dispozici.; program ''rpm'' tuto URL odstraní, uchová čistý název souboru a vyhledá ho v adresáři ''SOURCE''. Pokud říkáme, že kompletní URL není povinné, je nutné zdůraznit, že je vysoce doporučené, aby ostatní mohli zdrojové soubory najít, snadno provést aktualizaci nebo novou kompilaci. Také to umožní nástrojům jako je ''rpmbuildupdate'' provést automatické zkompilování nové verze.+Tento řádek říká, který zdrojový soubor byl použit pro vytvoření ''rpm'' balíčku. Všimněte si, že před jménem souboru předchází kompletní URL (není povinné), ukazujícíkde je původní zdroj k dispozici.; program ''rpm'' tuto URL odstraní, uchová čistý název souboru a vyhledá ho v adresáři ''SOURCE''. Pokud říkáme, že kompletní URL není povinné, je nutné zdůraznit, že je vysoce doporučené, aby ostatní mohli zdrojové soubory najít, snadno provést aktualizaci nebo novou kompilaci. Také to umožní nástrojům jako je ''rpmbuildupdate'' provést automatické zkompilování nové verze.
  
 Existuje-li více než jeden zdrojový soubor, použijí se další řádky s označením ''Source1:...'', ''Source2:...'', atd. Existuje-li více než jeden zdrojový soubor, použijí se další řádky s označením ''Source1:...'', ''Source2:...'', atd.
Řádek 281: Řádek 281:
 Pro existenci tohoto nepovinného tagu existují dva důvody: Pro existenci tohoto nepovinného tagu existují dva důvody:
   * použili jste na zdrojový soubor patch (záplatu), která musí být použita před kompilací (sestavením balíčku). Všimněte si, že všechny patche jsou také komprimované ve formátu ''bzip2''. I když nějaký patch je tak malý, že nemá smysl ho kopírovat, musí být převeden do uvedeného formátu.   * použili jste na zdrojový soubor patch (záplatu), která musí být použita před kompilací (sestavením balíčku). Všimněte si, že všechny patche jsou také komprimované ve formátu ''bzip2''. I když nějaký patch je tak malý, že nemá smysl ho kopírovat, musí být převeden do uvedeného formátu.
-  * byli jste upozorněni na patch pro verzi vašeho software někde na síti a stáhli jste si ho; nebo jej vybrali z upstreamu (ze SVN, GIT, ... atd.).+  * byli jste upozorněni na patch pro verzi vašeho softwaru někde na síti a stáhli jste si ho; nebo jej vybrali z upstreamu (ze SVN, GIT, ... atd.).
  
 Mějte na paměti, že soubor s patchem musí být umístěn do adresáře ''SOURCES''; ve zdrojích může být i více záplat, pak musí být pojmenovány ''Patch1'', ''Patch2'' atd. Mějte na paměti, že soubor s patchem musí být umístěn do adresáře ''SOURCES''; ve zdrojích může být i více záplat, pak musí být pojmenovány ''Patch1'', ''Patch2'' atd.
Řádek 319: Řádek 319:
 patching HTML pages to keep IMG SRC references correct. patching HTML pages to keep IMG SRC references correct.
 </code> </code>
-Tento tag je vcelku zvláštní, protože obsahuje text vytvořený z různých řádků a odstavců, je-li to nutné. Obsahuje úplný popis instalovaného software. Účelem je pomoci uživateli v rozhodnutí, zda chce balíček instalovat nebo ne.+Tento tag je vcelku zvláštní, protože obsahuje text vytvořený z různých řádků a odstavců, je-li to nutné. Obsahuje úplný popis instalovaného softwaru. Účelem je pomoci uživateli v rozhodnutí, zda chce balíček instalovat nebo ne.
  
-Můžete se zkusit zeptat se sám sebe: "A co překlad  (translations)?" Pro zlepšení čitelnosti ''spec'' souborů jsou překlad souhrnu (''summary'') a popisu (''descriptions''jsou uloženy v samostatném souboru nazvaném ''<balíček>.po''.+Můžete se zkusit zeptat se sám sebe: "A co překlad  (translations)?" Pro zlepšení čitelnosti ''spec'' souborů je překlad souhrnu (''summary'') a popisu (''descriptions'') uložen v samostatném souboru nazvaném ''<balíček>.po''.
  
 ==== Sekce prep (přípravná) ==== ==== Sekce prep (přípravná) ====
Řádek 377: Řádek 377:
 V tomto případě ''-p1'' znamená, že oprava by měla ignorovat ''cairo-1.7.6/'', ''-p2'' by znamenalo, že také ignorovat ''src/'' a tak dále ... V tomto případě ''-p1'' znamená, že oprava by měla ignorovat ''cairo-1.7.6/'', ''-p2'' by znamenalo, že také ignorovat ''src/'' a tak dále ...
  
-Představme si, kdyby existovala další záplava deklarovaná pomocí ''Patch1'': ..v sekci ''header'' by jste přidali další řádek: ''%patch1 -p1''. Přidání ''-b  .vaše_přípona'' je také dobrý způsob, jak můžete nechat druhé zjistit, co vaše záplata dělá a kdo ji vytvořil. Například pokud vytvořil záplatu Fred, pak může napsat ''%patch -p1 -b .fred'', pokud ale Barney, pak může zadat ''%patch -p1 -b .barney''.+Představme si, kdyby existovala další záplava deklarovaná pomocí ''Patch1'': ..v sekci ''header'' by jste přidali další řádek: ''%patch1 -p1''. Přidání ''-b  .vaše_přípona'' je také dobrý způsob, jak můžete nechat druhé zjistit, co vaše záplata dělá a kdo ji vytvořil. Napříkladpokud vytvořil záplatu Fred, pak může napsat ''%patch -p1 -b .fred'', pokud ale Barney, pak může zadat ''%patch -p1 -b .barney''.
  
 ==== Sekce build (stavební) ==== ==== Sekce build (stavební) ====
Řádek 507: Řádek 507:
 - Upgraded to 2.0.1 - Upgraded to 2.0.1
 </code> </code>
-Následuje řádek  o modifikacích balíčku, začínajících ''-''. Tady je příklad:+Následuje řádek o modifikacích balíčku, začínajících ''-''. Tady je příklad: 
 + 
 +<code>
   * ''spec'' file stolen from ''korganizer''    * ''spec'' file stolen from ''korganizer'' 
   * last snapshot before release   * last snapshot before release
Řádek 517: Řádek 519:
   * fixed QT libs version requirements   * fixed QT libs version requirements
   * add patch to handle Earl Grey tea   * add patch to handle Earl Grey tea
 +</code>
  
 V dokončeném ''rpm'' balíčku budou uchovány jen záznamy o změnách mladší jednoho roku. Pokud toto chování chcete změnit, můžete upravit hodnotu ''%_changelog_truncate''. V dokončeném ''rpm'' balíčku budou uchovány jen záznamy o změnách mladší jednoho roku. Pokud toto chování chcete změnit, můžete upravit hodnotu ''%_changelog_truncate''.
Řádek 548: Řádek 551:
   * ''libstdc++6-devel''    * ''libstdc++6-devel'' 
  
-Poté již stačí nainstalovat jen ''devel'' balíčky vyžadované příkazem ''rpm build'' pro konkrétní kompilovaný balíček.+Poté již stačí nainstalovat jen ''devel'' balíčky vyžadované příkazem ''rpmbuild'' pro konkrétní kompilovaný balíček.
  
 Po spuštění kompilace pozorně sledujte zprávy jako ''checking for ...'' ve výstupu ''.configure'' Po spuštění kompilace pozorně sledujte zprávy jako ''checking for ...'' ve výstupu ''.configure''
Řádek 554: Řádek 557:
 Jestliže vidíte něco jako ''checking for foo... foo.h not found'', znamená to, že potřebný hlavičkový soubor nebyl v systému nalezen. Hledejte ''devel'' balíček, který obsahuje ''foo.h'', ale buďte obezřetní: můžete najít více než jeden balíček obsahující komponentu se stejným názvem. Vyberte balíček "more obvious" - ve smyslu více příbuzný s kompilovaným balíčkem. Nevybírejte balíček ''network'', pokud kompilujete zvukovou aplikaci (například).  Jestliže vidíte něco jako ''checking for foo... foo.h not found'', znamená to, že potřebný hlavičkový soubor nebyl v systému nalezen. Hledejte ''devel'' balíček, který obsahuje ''foo.h'', ale buďte obezřetní: můžete najít více než jeden balíček obsahující komponentu se stejným názvem. Vyberte balíček "more obvious" - ve smyslu více příbuzný s kompilovaným balíčkem. Nevybírejte balíček ''network'', pokud kompilujete zvukovou aplikaci (například). 
  
-Po nalezení jej nainstalujte do systému a nezapomeňte přidat jeho jméno do sekce ''BuildRequires'' v souboru ''SPEC''+Po nalezení jej nainstalujte do systému a nezapomeňte přidat jeho jméno do sekce ''BuildRequires'' v souboru ''SPEC''
  
 Chybějící hlavička může být také nalezena během kompilace sama.  Jestliže se kompilace zastaví, zkontrolujte další chybějící ''foo.h'' a použijte tentýž postup. Chybějící hlavička může být také nalezena během kompilace sama.  Jestliže se kompilace zastaví, zkontrolujte další chybějící ''foo.h'' a použijte tentýž postup.
Řádek 571: Řádek 574:
 Napište Napište
 <code> <code>
-rpmlint mypackage.<archtype>.rpm+rpmlint muj_balicek.<$ARCH>.rpm
 </code> a získáte zprávu o testovaném balíčku. Pro zvýšení preciznosti testu použijte přepínač ''-i''. Měli by jste kontrolovat jak ''rpm'', tak i ''src.rpm''. </code> a získáte zprávu o testovaném balíčku. Pro zvýšení preciznosti testu použijte přepínač ''-i''. Měli by jste kontrolovat jak ''rpm'', tak i ''src.rpm''.
 Můžete nakonfigurovat ''rpmlint'' se souborem ''~/.rpmlintrc'' nebo ''/etc/rpmlintrc''. Měli byste nastavit alespoň následující: Můžete nakonfigurovat ''rpmlint'' se souborem ''~/.rpmlintrc'' nebo ''/etc/rpmlintrc''. Měli byste nastavit alespoň následující:
Řádek 589: Řádek 592:
 </code> </code>
  
-Pokud máte v úmyslu vytvořit ''rpm'' vhodné pro zařazení úložiště Mageia, měli byste také zajistit, že rpmlint-mageia-politika je nainstalována, neboť obsahuje různé konfigurace a politiky používané baliči Mageia.+Pokud máte v úmyslu vytvořit ''rpm'' vhodné pro zařazení úložiště Mageie, měli byste také zajistit, že balíček ''rpmlint-mageia-policy'' je nainstalován, neboť obsahuje různé konfigurace a politiky používané baliči Mageie.
  
 ''rpmlint'' zkontroluje spoustu věcí, jako: tagy, binárky, konfigurační soubory, umístění, oprávnění, vlastnictví, FHS dodržování, zdroje, menu, skripty, ''spec'' soubor obsahu ... Pro více informací se podívejte na ''/usr/share/rpmlint/config.d/mageia.error.list''. ''rpmlint'' zkontroluje spoustu věcí, jako: tagy, binárky, konfigurační soubory, umístění, oprávnění, vlastnictví, FHS dodržování, zdroje, menu, skripty, ''spec'' soubor obsahu ... Pro více informací se podívejte na ''/usr/share/rpmlint/config.d/mageia.error.list''.
Řádek 611: Řádek 614:
   * Poslat dotaz mageia-dev, které jste si předplatili před dlouhou dobou na začátku čtení těchto HOWTO stránky.   * Poslat dotaz mageia-dev, které jste si předplatili před dlouhou dobou na začátku čtení těchto HOWTO stránky.
  
-===== Specifika Mageia RPM: =====+====== Specifika Mageia RPM: ======
 Napište oddělení Mageia Quality Assurance. Napište oddělení Mageia Quality Assurance.
  
Řádek 792: Řádek 795:
 Následující formáty jmen souborů může být použito: Následující formáty jmen souborů může být použito:
   * ''README.install.urpmi'' - zobrazí, když je balíček původně nainstalován   * ''README.install.urpmi'' - zobrazí, když je balíček původně nainstalován
-  * ''README.version.upgrade.urpmi'' a ''README.version.update.urpmi'' - zobrazí, když je balíček aktualizován na verzi ''version'' nebo vyšší, od verzi, která je nižší než ''version''(''version'' by měl být buď balíček ''version'', ''epoch:version'', ''version-release'', nebo ''epoch:version-release'', kratší tím lépe).+  * ''README.version.upgrade.urpmi'' a ''README.version.update.urpmi'' - zobrazí, když je balíček aktualizován na verzi ''version'' nebo vyšší, od verze, která je nižší než ''version''(''version'' by měl být buď balíček ''version'', ''epoch:version'', ''version-release'', nebo ''epoch:version-release'', kratší tím lépe).
  
 Také jsou podporovány ''README.urpmi'' (zobrazuje ve všech případech) a ''README.upgrade.urpmi'' / ''README.update.urpmi'' (vždy zobrazena při upgradu). Ty by neměly být používány, protože způsobují zprávu ukazující v každé následné aktualizace, a to i v případě, že uživatel již viděl zprávu mnohokrát. Také jsou podporovány ''README.urpmi'' (zobrazuje ve všech případech) a ''README.upgrade.urpmi'' / ''README.update.urpmi'' (vždy zobrazena při upgradu). Ty by neměly být používány, protože způsobují zprávu ukazující v každé následné aktualizace, a to i v případě, že uživatel již viděl zprávu mnohokrát.
Řádek 804: Řádek 807:
 ====== Alternativa: checkinstall ====== ====== Alternativa: checkinstall ======
  
-checkinstall je již dlouhou dobu nefunkčním. Přesto z historického hlediska jistě zajímavým nástrojem na tvorbu RPM.+''checkinstall'' je již dlouhou dobu nefunkčním. Přesto z historického hlediska jistě zajímavým nástrojem na tvorbu RPM.
  
 <del>Velmi snadná cesta ke kompilaci balíčků ''rpm'' pro osobní použití je instalovat balíček ''checkinstall''. Kompilace ze zdrojových kódů (obvykle ''./configure && make && sudo make install'') je pozměněna tak, že příkaz ''make install'' je nahrazen příkazem ''checkinstall''. Tím se velmi zjednoduší kompilace ''rpm'' <del>Velmi snadná cesta ke kompilaci balíčků ''rpm'' pro osobní použití je instalovat balíček ''checkinstall''. Kompilace ze zdrojových kódů (obvykle ''./configure && make && sudo make install'') je pozměněna tak, že příkaz ''make install'' je nahrazen příkazem ''checkinstall''. Tím se velmi zjednoduší kompilace ''rpm''
Řádek 811: Řádek 814:
  
 ====== Některé odkazy ====== ====== Některé odkazy ======
 +  * [[http://milux.php5.cz/rpm.php?str=rpm&styl=spol|Milux - Linuxový zápisník - Správa balíků softwaru - RedHat Package Manager]]
 +
   * [[http://arklinux.org/ark-rpm-howto.html|Ark linux howto]]   * [[http://arklinux.org/ark-rpm-howto.html|Ark linux howto]]
   * [[http://www-106.ibm.com/developerworks/library/l-rpm1/|IBM article on rpm building]]   * [[http://www-106.ibm.com/developerworks/library/l-rpm1/|IBM article on rpm building]]
system/prikazovy_radek/tvorba_rpm.1348384693.txt.gz · Poslední úprava: 2014/10/25 13:13 (upraveno mimo DokuWiki)