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í
×
včera 09:30 | Nová verze
Byla vydána verze 1.4.5 programu pro sazbu dokumentů (DTP) Scribus. Jedná se o opravné vydání stabilní řady 1.4, jež byla prohlášena za stabilní, tj. vyšla verze 1.4.0, v lednu 2012 (zprávička). Řada oprav byla backportována z vývojové řady 1.5.0svn.
Ladislav Hagara | Komentářů: 5
30.1. 02:34 | Nová verze
Vyšla verze 0.91 multiplatformního vektorového grafického editoru Inkscape. Přehled nových vlastností i s náhledy v poznámkách k vydání.
Ladislav Hagara | Komentářů: 22
30.1. 01:23 | Komunita
Nadace pro svobodný software (FSF) udělila certifikát RYF (Respects Your Freedom, Respektuje vaši svobodu) notebooku Libreboot X200, což je repasovaný Lenovo ThinkPad X200. Proprietární BIOS byl nahrazen Librebootem (zprávička). Podpora Intel AMT (Active Management Technology) byla odstraněna. Certifikace RYF byla představena v říjnu 2012 (zprávička). V prosinci 2013 získal certifikaci RYF notebook LibreBoot X60 (původně Gluglug X60) (zprávička).
Ladislav Hagara | Komentářů: 27
29.1. 23:23 | Komunita
Mozilla na svém blogu oznámila, že u příležitosti mezinárodního Dne ochrany osobních údajů (Data Privacy Day) mimo jiné připojila do sítě Tor 14 uzlů. V oznámení je zmíněna také stránka s tipy na chytřejší ochranu soukromí. [Mozilla.cz]
Ladislav Hagara | Komentářů: 13
29.1. 15:40 | Nová verze
The Document Foundation oznámila vydání verze 4.4 svobodného kancelářského balíku LibreOffice. Z novinek je v oznámení zdůrazněno vylepšené uživatelské rozhraní, lepší podpora OOXML a kvalita zdrojových kódů (Coverity Scan). Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání.
Ladislav Hagara | Komentářů: 26
29.1. 10:09 | Nová verze
Laboratoře CZ.NIC vydaly další verzi (4.1.0) desktopové aplikace Datovka 4. Tato verze zahrnuje kromě oprav chyb i některé novinky a vylepšení. Mezi ně patří dokonalejší mechanizmus odesílání zpráv více příjemcům, lepší způsob označovaní nově přijatých zpráv, rychlejší stahování zpráv a ukládání do databáze či vylepšená nabídka kontaktů. Z novinek stojí za zmínku možnost importovat ZFO soubory zpět do lokální databáze, podpora … více »
Vilem Sladek | Komentářů: 27
27.1. 23:23 | Bezpečnostní upozornění
V knihovně glibc byla nalezena kritická zranitelnost CVE-2015-0235, jež dostala jméno GHOST. Jedná se o přetečení zásobníku ve funkci __nss_hostname_digits_dots(). Útočník může v nejhorším případě vzdáleně spustit libovolný kód. [CSIRT.CZ]
Ladislav Hagara | Komentářů: 29
27.1. 21:29 | Zajímavý software
Jon von Tetzchner, jenž v roce 1994 založil společnost Opera, do roku 2010 byl jejím CEO a v roce 2011 ji zcela opustil, představil se svým týmem nový webový prohlížeč Vivaldi. Technologické demo je k dispozici také pro Linux. Diskuse na Vivaldi.net.
Ladislav Hagara | Komentářů: 91
27.1. 21:28 | Nová verze
Bylo oznámeno vydání verze 5.2 prostředí KDE Plasma. Nejnovější Plasma přináší nové komponenty (BlueDevil, KSSHAskPass, Muon, ...), funkce a samozřejmě řeší řadu chyb obsažených ve verzi 5.1 (zprávička). Podrobnosti v úplném seznamu změn. Videoukázka prostředí na YouTube.
Ladislav Hagara | Komentářů: 3
27.1. 21:28 | Pozvánky
Až do pátku 30. ledna můžete hlasovat o programu konference InstallFest 2015. Témata jsou různorodá, od embedded po servery, a na výběr je též z několika workshopů. Program konference je ve vašich rukou.
Jendа | Komentářů: 0
Disketu jsem naposledy použil během
 (41%)
 (3%)
 (12%)
 (41%)
 (3%)
Celkem 2048 hlasů
 Komentářů: 59, poslední včera 23:07
    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 | 3999×

    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.

           

    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.