abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 06:59 | Humor
Organizace Electronic Frontier Foundation (EFF) upozorňuje v rámci seriálu Stupidní patent měsíce (zprávička) na US Patent No. 8,609,158 z 17. prosince 2013. Vynálezkyně Diane Elizabeth Brooks jej pojmenovala Dianina mana. Předmětem vynálezu je lék na rakovinu. Složení léku: pupalkový olej, rýže, sezamová semínka, zelené fazolky, káva, maso, sýr, mléko, extrakt ze zeleného čaje, semena pupalky dvouleté a víno​​. EFF nepochybuje o … více »
Ladislav Hagara | Komentářů: 11
dnes 06:57 | Zajímavý software
Minulý týden vyšla verze 1.0 open source diskusního fóra Discourse. Fórum je postaveno na Ruby on Rails, Ember.js, PostgreSQL a Redis. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU GPLv2. Přispěvatelé musí podepsat CLA opravňující Civilized Discourse Construction Kit, Inc., společnost stojící za Discourse, kdykoli kód přelicencovat (FAQ). Diskusní fórum Discourse je používáno například na stránkách Atomu, Dockeru nebo také Ubuntu.
Ladislav Hagara | Komentářů: 0
včera 13:39 | Nová verze
Byla vydána nová verze PHP 5.6.0. Vedle oprav chyb mezi klíčové vlastnosti nové verze patří např. podpora pro nahrávání souborů větších než 2 GB, integrace debuggeru phpdbg, objevují se konstantní skalární výrazy nebo variadické funkce s proměnným počtem parametrů. Více v seznamu změn.
MMMMMMMMM | Komentářů: 14
29.8. 14:01 | IT novinky
28.8.2014 oficiálně zemřel ve věku 58 let Hal Finney na následky ALS. Jeho tělo bylo po smrti předáno společnosti Alcor Life Extension Foundation, která se zabývá kryonikou. … více »
Bystroushaak | Komentářů: 208
27.8. 11:36 | Pozvánky
LinuxDays, konference, která se bude konat 4. a 5. 10. 2014 v Praze v Dejvicích, zveřejnila návrh programu (stále probíhá call for papers). Mezi již přihlášenými jsou přednášky z oblastí síťování, vývoje softwaru a dalších.
Jendа | Komentářů: 3
27.8. 09:26 | Nová verze
Vyšel GIMP 2.8.14. Jedná se o opravné vydání. Řešena je řada chyb, vylepšená je dokumentace a překlady. Novinkou je, že ve výchozím stavu přijímá script-fu-server požadavky pouze z 127.0.0.1 (bezpečnostní problém CVE-2012-4245, commit). Verze 2.8.14 vyšla záhy po verzi 2.8.12. Řešen byl problém s verzemi knihoven (commit).
Ladislav Hagara | Komentářů: 0
26.8. 09:08 | Nasazení Linuxu
Na serveru computerworld.com se objevil článek o novém pokusu nahradit v Číně windows vlastní linuxovou distribucí Red Flag. Čínský výrobce počítačů "Penta Wan Jing Information Technology Industry Group" koupil aktiva spojená s Red Flag v přepočtu za cca 132 miliónů korun. Systém by rádi uvedli na trh do října.
ZAH | Komentářů: 15
26.8. 08:48 | Nová verze
Byl vydán PoorWSGI v první oficiální stable verzi 1.0.0. PoorWSGI je malý WSGI middleware, který ale poskytuje dostatečnou funkčnost pro tvorbu webových stránek v pythonu. Více informací je dostupných na stránkách projektu. Zdrojové kódy je možné stáhnout z git repositáře nebo pypi stránek, ze kterých je také možné rovnou instalovat Python balíček pomocí pip.
McBig | Komentářů: 0
26.8. 08:44 | Pozvánky

V rámci další akce GXG Jičín vám ukážeme jak snadno můžete nahradit váš operační systém (Windows, Mac OS X...) pomocí Linuxu. Možná ho už dnes používáte a ani o tom nevíte. Zajímá vás co je Linux, proč ho využívá i Google a jaké má výhody? Martin Vancl vám ho představí a i spoustu dalších programů, které jsou zdarma! Ukáže vám, jak můžete ušetřit náklady za licence a zároveň zvýšit bezpečnost vašeho počítače. Dozvíte se, kde všude můžete Linux

… více »
Gug.cz | Komentářů: 6
26.8. 07:56 | Zajímavý projekt
Na blogu projektu sandstorm.io byla zveřejněna zpráva o portaci Apache Wave (nástupce zaniklého Google Wave). Po Etherpadu a Ethercalcu jde již o několikátou kolaborativní webovou aplikaci podporovanou touto platformou. Cílem sandstorm.io je umožnit snadno a přitom bezpečně provozovat vlastní kolekci webových aplikací na vlastním hardware (či VPS), k čemuž využívá techniku sandboxingu. … více »
fedy | Komentářů: 0
Hlasuji z:
 (85%)
 (11%)
 (2%)
 (1%)
 (0%)
 (0%)
Celkem 3078 hlasů
 Komentářů: 42, poslední 25.8. 11:10
Rozcestník
Reklama
Autoškola testy online Levný benzín

Balíčky pro Debian - 5 (Debhelper a ti druzí)

10. 7. 2008 | Michal Čihař | Návody | 3936×

V minulém díle jsme sice vytvořili první balíček, ale zatím jsme moc nezkoumali co zapříčinilo, že se nám vlastně zkompiloval.

Obsah

Jak již zaznělo v minulém díle, soubor debian/rules obsahuje Makefile, který zapříčiní vytvoření balíčku. Napsat vše, co je potřeba pro vytvoření balíčku přímo do tohoto souboru, asi není nejlepší, takže vzniklo několik nástrojů, které nám práci usnadní. Nejstarší a dnes již nepodporovaný byl debmake. Dnes již však téměř všechny balíčky používají debhelper. Ten se skládá ze sady mnoha příkazů, přičemž každý má na starosti jednu konkrétní část tvorby balíčku.

Nadstavby nad Debhelperem a jeho náhrady

link

Debhelper samozřejmě není jediný nástroj, který lze pro vytváření balíčků použít. Existuje mnoho projektů, které se snaží debian/rules ještě zjednodušit, nebo případně automaticky generovat. Debhelper je však zdaleka nejpoužívanější a některé nadstavby jej stejně používají.

Nejrozšířenější nadstavba je bezpochyby CDBS. Jedná se o sady include skriptů pro make, které u balíčků jež se chovají standardně (například GNOME programy, pythonovské moduly a podobně) umožní zcela vynechat vlastní psaní pravidel. Stačí do debian/rules napsat vhodné include a vše bude automaticky fungovat. Za vším tímto je však stále schován Debhelper a pokud nám něco přestane fungovat, nevyhneme se jeho naučení.

Dalším zajímavým projektem je YADA. Ten jde cestou podobnou RPM a veškeré informace o balíčku jsou uloženy v souboru debian/packages. YADA z pak něj vygeneruje debian/control, debian/rules a případně i další skriptíky. Tímto nástrojem se však zabývat nebudu, protože s ním nemám žádné zkušenosti.

Debhelper

link

Naším hlavním pomocníkem při vytváření debian/rules je tedy Debhelper. Ten se v současné době skládá téměř z padesáti skriptů, z nichž každý má na starosti jinou část vytváření balíčku. Když se podíváme do našeho balíčku, zjistíme, že se jich i v takto jednoduchém balíčku používá poměrně dost. Hlavní příčina toho je, že každý skript se stará právě o jednu věc a tím je umožněna dostatečná granularita vytváření našeho skriptu.

Všechny příkazy Debhelperu najdete zdokumentované v man stránkách, takže kdykoliv potřebujete o některém z nich podrobnější informace, příkaz man vám pomůže. Ty nejdůležitější si však popíšeme; buď dnes, nebo v některém z následujících dílů.

Jak vlastně celkové vytváření balíčku funguje? Nejprve se standardně zkompiluje, instalace se pak provádí do adresáře debian/jméno-binárního-balíčku, kde se provedou závěrečné úpravy a tento adresář se zabalí do finálního balíčku. Pokud náš zdrojový balíček vytváří více balíčků, obvykle se instaluje do adresáře debian/tmp a jednotlivé části se pak za pomoci skriptů z Debhlepera nakopírují do správného adresáře pro daný balíček.

dh_testdir

link

Tento příkaz by se měl objevit na začátku každého pravidla a jediné, co má na starosti, je zkontrolovat, jestli se nacházíte ve správném adresáři (tedy nejvyšším adresáři zdrojáků).

dh_testroot

link

Další příkaz, který se vyskytuje často. Tentokrát jen pro pravidla, která mohou vytvářet soubory s právy superuživatele, tedy pro cíle jako install, clean, binary-arch a binary-indep. Jak již jeho název napovídá, jen kontroluje, jestli máte dostatečná oprávnění. Jak již jsem upozorňoval v minulém díle, tak balíčky se nekompilují pod skutečným superuživatelem, ale v prostředí fakeroot.

dh_clean

link

Vyčistí adresář debian od dočasných souborů vzniklých při kompilaci a instalaci.

dh_install*

link

Skripty začínající na dh_install mají na starosti instalaci různých druhů souborů na správná místa do balíčků. Protože se jedná o poněkud obsáhlejší téma, bude jejich podrobnějšímu popisu věnován další díl.

link

Skript dh_link slouží pro vytváření symbolických odkazů a opravu těch existujících podle Debian Policy. Pro vytváření se zadávají parametry ve stejném pořadí jako u příkazu ln.

dh_strip

link

Tento skript odstraní ladicí symboly z programů a knihoven v balíčku. Tím se sice balíček zmenší, ale v případě pádu je obtížnější získat přesný popis problému. Proto je doporučeno u většiny knihoven ještě vytvářet -dbg balíček, který bude obsahovat tyto ladicí symboly. Obsah tohoto balíčku vygeneruje dh_strip automaticky po zadání parametru --dbg-package=jméno-debug-balíčku.

dh_compress

link

Projde nainstalovanou dokumentaci a soubory větší než 4 kB zabalí gzipem.

dh_fixperms

link

Opraví práva u souborů v balíčku. Opraví například chybná práva pro standardní adresáře, odstraní setuid a setgid bity a podobně.

dh_installdeb

link

Zkopíruje skripty a informace o balíčku do adresáře debian/jméno-binárního-balíčku/DEBIAN. Z tohoto adresáře se po vytvoření balíčku stane archív control.tar.gz.

dh_shlibdeps

link

Zjistí závislosti na sdílených knihovnách a vytvoří proměnné pro nahrazení v závislostech, které posléze použije dh_gencontrol.

dh_gencontrol

link

Nahradí proměnné v souboru debian/control a zapíše verzi do debian/jméno-binárního-balíčku/DEBIAN/control.

dh_md5sums

link

Spočítá MD5 kontrolní součty souborů v balíčku a uloží je jako debian/jméno-binárního-balíčku/DEBIAN/md5sums.

dh_builddeb

link

Vytvoří binární balíček. Tento skript v podstatě jen zavolá dpkg-deb s vhodnými parametry a ten se již postará o vlastní vytvoření balíčku.

dh

link

Na závěr jsem si nechal nový přírůstek do rodiny Debhelpera, jedná se o odpověď na různé zjednodušování debian/rules pomocí CDBS a podobných. Skript dh je pro standardní balíčky (v současné době používající autoconf, distutils nebo Build.PL) schopen provést veškeré potřebné kroky a v případě ideálního balíčku může být soubor debian/rules zjednodušen až na tři řádky:

#!/usr/bin/make -f
%:
    dh $@

Ve skutečném světě to tak jednoduché většinou není, ale i tak si pomocí tohoto nástroje můžeme ušetřit dost práce.

Závěr

link

Nyní již máme stručný přehled toho, co se při vytváření děje, a příště se podíváme na část, kterou jsme dnes poněkud vynechali - instalaci souborů do správných balíčků a na správné místo.

Nejčtenější články posledního měsíce

LibreOffice 4.3.0 dospěl do finální verze
Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
HW novinky: Intel Xeon E5-2699 v3 má 18 jader, 36× HT

Nejkomentovanější články posledního měsíce

HW novinky: Intel Xeon E5-2699 v3 má 18 jader, 36× HT
Jaderné noviny – 31. 7. 2014: Rychlejší vypisování adresářů
HW novinky: Daruji továrny, zn. přihodím 1 miliardu dolarů
  všechny statistiky »

Seriál Balíčky pro Debian (dílů: 12)

Balíčky pro Debian - 1 (úvod) (první díl)
<—« Balíčky pro Debian - 4 (kompilace balíčku a náš první balíček)
»—> Balíčky pro Debian - 6 (instalace souborů)
Balíčky pro Debian - 12 (závěr aneb co se jinam nevešlo) (poslední díl)

Související články

Na co se často ptáme: Balíčkovací systémy
Seriál: Instalace softwaru v Linuxu
Seriál: Gentoo ebuild
Seriál: Rukověť baliče RPM
Seriál: Balíčkovací systém Arch Linuxu
Smart Package Manager - instalujeme chytře
Zdroje balíčkov pre Ubuntu
Balíčkovací systém Mandrake Linuxu
Balíčkovací systém Gentoo Linuxu

Odkazy a zdroje

Návod pro začínajícího balíčkáře
Příručka vývojáře
Zásady Debianu
Dokumentace pro vývojáře

Další články z této rubriky

GNU R prakticky – 1. díl
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Porovnávání obsahu adresářů v GUI
MUNIN, sieťový monitorovací framework
Fail2Ban – zlyhaj a sedíš!
       

Hodnocení: 100 %

        špatnédobré        

Nástroje: Tisk bez diskuse

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

ISSN 1214-1267   Powered by Hosting 90 Server hosting
© 1999-2013 Argonit s. r. o. Všechna práva vyhrazena.