abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 8
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 770 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Balíčky pro Debian - 1 (úvod)

    3. 6. 2008 | Michal Čihař | Návody | 10828×

    Pokud používáte Debian (nebo některou z jeho odvozenin, například Ubuntu) a chcete si pro tento systém vytvářet balíčky, tak vítejte u tohoto seriálu. Během následujících dvanácti dílů se dozvíte vše, co potřebujete vědět k vytvoření balíčků pro Debian.

    Obsah

    Úvod

    link

    Seriál začneme obecným úvodem o tom, jak vlastně takový balíček vypadá. Budeme pokračovat přes popis důležitých souborů až k nástrojům, které pro vytváření balíčku potřebujeme. V závěru popíšu několik speciálních případů balíčků a připojím několik tipů, jak se s balíčky nejlépe vypořádat.

    Vše, co je v tomto seriálu popsáno, se týká přímo Debianu a je možné, že v Ubuntu jsou některé drobnosti řešené jinak. Pokud o těchto odlišnostech vím, upozorním na ně, ale protože balíčky přímo pro Ubuntu nevytvářím, nejspíš zde v tomto ohledu bude něco chybět a budu rád, pokud na tyto odlišnosti upozorníte v diskuzi.

    Jak vypadá binární balíček

    link

    Protože chceme vytvářet balíčky, měli bychom vědět, jak takový výsledný binární balíček vlastně vypadá. Na rozdíl od RPM (viz Seriál: Rukověť baliče RPM) není problém balíček pro Debian vytvořit bez použití speciálních nástrojů. Jediné, co potřebujeme, jsou nástroje ar a tar.

    Když se podíváme na nějaký existující debianní balíček (pro ukázky v tomto a následujících kapitolách jsem ze svých balíčků vybral ten nejjednodušší, a to jest photo-uploader), zjistíme, že se vlastně jedná o ar archív se třemi soubory:

    $ ar tv photo-uploader_0.5-1_all.deb 
    rw-r--r-- 0/0      4 Dec 11 12:49 2007 debian-binary
    rw-r--r-- 0/0   1632 Dec 11 12:49 2007 control.tar.gz
    rw-r--r-- 0/0  11332 Dec 11 12:49 2007 data.tar.gz
    

    To, že se jedná o binární balíček pro Debian, poznáme podle existence souboru debian-binary. Tento soubor obsahuje verzi binárního balíčku (všechny balíčky, se kterými se dnes setkáte, jsou ve verzi 2.0):

    $ ar p photo-uploader_0.5-1_all.deb debian-binary
    2.0

    Dále archív obsahuje soubory control.tar.gz a data.tar.gz, které obsahují vlastní data balíčku. Pro kompresi se kvůli kompatibilitě se staršími verzemi stále používá gzip, přestože jsou podporovány i bzip2 a lzma.

    Soubor data.tar.gz je při instalaci rozbalen do kořenového adresáře systému, takže jeho obsah je celkem zřejmý.

    V souboru control.tar.gz jsou veškeré informace pro balíčkovací systém:

    $ ar p photo-uploader_0.5-1_all.deb control.tar.gz | tar tfz -
    ./
    ./md5sums
    ./postinst
    ./prerm
    ./control
    

    Jak možná uhodnete z názvu, soubor control obsahuje informace o balíčku, postinst a prerm jsou skriptíky pouštěné při instalaci nebo odinstalování a md5sums obsahuje kontrolní součty souborů v data.tar.gz. Souborů může být mnohem více, ale pro první seznámení si vystačíme s těmito.

    Podrobnosti o tom, co všechno mohou obsahovat tyto soubory, se postupně dozvíte v průběhu seriálu, ale je dobré vědět, jak vlastně binární balíček uvnitř vypadá.

    Jak vypadá zdrojový balíček

    link

    Zdrojový balíček se oproti tomu binárnímu skládá ze dvou nebo tří souborů. V případě výše použitého balíčku pro photo-uploader to budou tyto soubory:

    $ ll
    celkem 28
    -rw-r--r-- 1 nijel nijel   844 11. pro 13.02 photo-uploader_0.5-1.dsc
    -rw-r--r-- 1 nijel nijel 17796 11. pro 13.02 photo-uploader_0.5.orig.tar.gz
    -rw-r--r-- 1 nijel nijel  1846 11. pro 13.02 photo-uploader_0.5-1.diff.gz
    

    První soubor je vlastně jakýsi popis zdrojového balíčku, najdeme v něm informace o balíčku (správce, verze, závislosti pro kompilaci apod.) a seznam souborů, ze kterých se zdrojový balíček skládá (tedy orig.tar.gz a diff.gz spolu s jejich kontrolními součty. Tento soubor by také měl být podepsán PGP, takže si můžete ověřit původ zdrojového balíčku.

    Druhým souborem je původní tarball tak, jak jsme ho získali od autora softwaru. Pokud to není nezbytně nutné, neměl by být nijak změněn a přesně odpovídat tomu, který autor nabízí na svých stránkách. Ne vždy je to však možné, nejčastěji z důvodů problematické licence některých částí nebo kvůli zabalení gzipem (zde opět platí výše uvedené, že dpkg podporuje i bzip2 a lzma, ale z důvodů kompatibility se staršími verzemi se nadále používá gzip).

    Poslední soubor obsahuje změny potřebné pro vytvoření debianního balíčku. Přinejmenším tedy přidává skripty potřebné pro kompilaci balíčku, ale může i upravovat soubory v tarballu. Tento soubor se změnami nenaleznete u takzvaných nativních balíčků. Jedná se o programy psané přímo pro Debian, kde nemá smysl rozlišovat mezi verzí balíčku a verzí programu. Pokud však takovýto balíček bez souboru diff.gz vytvoříte vy, obvykle se jedná o chybu.

    Adresář debian a co vše musí obsahovat

    link

    Pro práci se zdrojovými balíčky používáme nástroj dpkg-source. Přepínačem -x si zdrojový balíček rozbalíme a podíváme se dovnitř:

    $ dpkg-source -x photo-uploader_0.5-1.dsc
    dpkg-source: extracting photo-uploader in photo-uploader-0.5
    dpkg-source: unpacking photo-uploader_0.5.orig.tar.gz
    dpkg-source: applying ./photo-uploader_0.5-1.diff.gz
    $ ll photo-uploader-0.5/
    celkem 72
    -rw-r--r-- 1 nijel nijel    32 25. zář 15.46 AUTHORS
    -rw-r--r-- 1 nijel nijel 17987 25. zář 14.55 COPYING
    drwxr-xr-x 2 nijel nijel  4096  4. úno 21.44 debian
    -rw-r--r-- 1 nijel nijel   240 25. zář 15.40 INSTALL
    -rw-r--r-- 1 nijel nijel   690 11. pro 12.40 NEWS
    -rwxr-xr-x 1 nijel nijel  5289 29. lis 22.59 photo-upload.py
    -rw-r--r-- 1 nijel nijel   223  5. říj 12.39 photo-uploadrc
    -rw-r--r-- 1 nijel nijel  2641 11. pro 12.44 photo-upload.1
    drwxr-xr-x 3 nijel nijel  4096 11. pro 12.48 phoupl
    -rw-r--r-- 1 nijel nijel  1038 11. pro 12.48 PKG-INFO
    -rw-r--r-- 1 nijel nijel  1490 26. zář 15.52 README
    -rwxr-xr-x 1 nijel nijel  6238 26. zář 11.35 setup.py
    

    Jak jistě vidíte, kromě věcí, které vypadají jako zdrojové kódy nějaké aplikace, se vytvořil adresář debian, který obsahuje veškeré věci týkající se vytváření balíčku. Obsah tohoto adresáře je obvykle právě vytvořen souborem diff.gz. V případě námi zkoumaného balíčku tento adresář obsahuje sedm souborů:

    $ ll photo-uploader-0.5/debian/
    celkem 28
    -rw-r--r-- 1 nijel nijel    2  4. úno 21.44 compat
    -rw-r--r-- 1 nijel nijel  894  4. úno 21.44 control
    -rw-r--r-- 1 nijel nijel 1162  4. úno 21.44 copyright
    -rw-r--r-- 1 nijel nijel   12  4. úno 21.44 docs
    -rw-r--r-- 1 nijel nijel  873  4. úno 21.44 changelog
    -rwxr-xr-x 1 nijel nijel  730  4. úno 21.44 rules
    -rw-r--r-- 1 nijel nijel   80  4. úno 21.44 watch
    

    U komplikovanějších balíčků naleznete mnohem více souborů, ale nemusíme hned začínat tím nejtěžším. Dnes se pro vytváření téměř všech balíčků používá debhelper, který usnadňuje mnoho kroků nutných pro jejich vytvoření. V celém seriálu předpokládám jeho použití a pokud někdo z nějakých obskurních důvodů potřebuje používat něco jiného, má smůlu :-).

    Stručný popis, co jednotlivé soubory obsahují, najdete ve zbývající části článku, všechny však budou postupně podrobněji popsány v dalších dílech seriálu. Všechny soubory by měly být v UTF-8, takže můžete bez obav používat nabodeníčka ve svých jménech.

    debian/compat

    link

    Povinný soubor určující verzi nástroje debhelper, se kterým byl balíček otestován. Stejně jako vše ostatní se i debhelper vyvíjí a tímto souborem je zajištěna zpětná kompatibilita - při zpracování balíčku se debhelper automaticky přepíná do režimu kompatibilního s verzí uvedenou v tomto souboru.

    debian/control

    link

    Povinný textový soubor obsahující informace zdrojovém balíčku a binárních balíčcích, které vzniknou při jeho kompilaci. Obsahuje jak popis balíčků, tak i informace o závislostech, odkaz na domovskou stránku programu a další informace.

    link

    Povinný textový soubor s informacemi o licenci balíčku. Debian je poměrně přísný na posuzování licencí, a proto pokud chcete balíček dostat do distribuce, dejte si na tomto souboru záležet.

    debian/docs

    link

    Nepovinný soubor, jenž obsahuje seznam dokumentace, kterou má debhelper nainstalovat.

    debian/changelog

    link

    Povinný soubor popisující seznam změn mezi revizemi balíčku.

    debian/rules

    link

    Pravidla pro make, pomocí kterých je možné zkompilovat balíček.

    debian/watch

    link

    Nepovinný soubor obsahující skript pro program uscan, který umožňuje kontrolu aktuálnosti verze programu a případně stažení aktuálního tarballu od autora.

    Závěr

    link

    Nyní již tušíte, jak takový balíček pro Debian vypadá, a v dalším díle se už budeme věnovat jejich vytváření.

           

    Hodnocení: 96 %

            š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ář

    3.6.2008 00:48 Lubos Kopecky | skóre: 32
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    dotazek - bude volnym pokracovanim balicku pro Debian vytvoreni vlastni mutace Debianu s mnou preferovanyma balickama ci primo cely vlastni system zalozeny na deb-baliccich? pokud by se tak stalo, byl bych hodne potesen :)

    dik
    3.6.2008 01:13 laco
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Něco jako Greenie-linux ? Ale teď vážně.

    Balíčkování je skvělá věc, bohužel se mi zatím nepodařilo nově instalovaný Debian "testing" ani pořádně rozjet (viz dotaz v poradně). Kdyby tak někdo napsal podrobný seriál o řešení potíží s touto distribucí !
    tommyq avatar 3.6.2008 05:22 tommyq | skóre: 8
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Nelze napsat žádnej souhrn řešení problémů, protože v této v podstatě největší distribuci je počet možností problémů dán právě jeho velikostí :) Každopádně, co jsem v poslední době někomu instaloval Lenny, tak se choval méně stabilně než Sid. Zvláštní, ale bylo to tak :) A jen můj názor - kdo si nedokáže poradit s testingem a ani do snažení se s googlem se mu nechce nebo nemůže, měl by používat stable nebo Bububuntu :)
    3.6.2008 10:03 networ
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    To je i má zkušenost. Testing se chová hůře než unstable. Proto na servery instaluji jedině stable a na své PC unstable.
    3.6.2008 23:40 miro | skóre: 19 | blog: miro
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Mam uplne opacnu skusenost. Testing na notebooku a ziaden problem. Upgradujem pravidelne, tak raz za tyzden.
    3.6.2008 10:24 Pev | skóre: 28
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Já používám testing, ale pomalu se mi mění na unstable - jsem línej čekat 10 či více dnů a programy většinou fungují :-).

    Zato na notebooku se stabilní verzí Ubuntu pořád něco opravuju. Nevím, jestli je to tím notebookem nebo Ubuntu (hádám na kombinaci obojího).
    3.6.2008 12:25 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    spis rukama...
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    3.6.2008 14:18 Pev | skóre: 28
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    No, když něco ve výchozí instalaci Ubuntu nefunguje a potom, co to opravím to funguje, tak je to opravdu rukama.

    Ale spíš je problém ve WM - na Debianu používám Fluxbox, na Ubuntu je Gnome. Poslední, co jsem např upravoval byly hal skripty pro uspání do paměti na disk. Ve Fluxboxu na Debianu není problém dát příkaz v xtermu a je to, v Gnome se musejí upravit ty skripty. Dále se Ubuntu nastartovalo s tmavým lcd (opět zřejmě problém hal scriptů nebo HW).

    Jasan, rozhodně nechci tvrdit, že moje zásahy jsou nějaká nádhera a že nebývá problém mezi klavesnicí a židlí, ale Ubuntu stable mi přijde nestabilnější než Debian unstable. Nejsem sám kdo tvrdí že Ubuntí patche balíčků Debianu nejsou zrovna to nejlepší...
    jiri.one avatar 4.6.2008 10:00 jiri.one | skóre: 19 | blog: Jiriho blog
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    to s tim tmavym LCD jsi uz nejak vyresil? mne to docela zajimalo, mam stejny problem
    www.jiri.one - Můj blog o Linuxu, hrách, životě, ...
    3.6.2008 06:30 Jachym Cepicky
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    V podstatě je to o vytvoření potřebných "meta" balíků. Vytvoříte si prázdný balíček, který bude mít ty správné závislosti a voila - vlastní mutace je na světě.

    K tomu by neškodilo pár dílů o vytváření repositářů
    3.6.2008 08:39 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    fabian avatar 3.6.2008 09:07 fabian | skóre: 18
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Diky za pekny uvod. Tesim se na pokracovani.
    3.6.2008 10:32 Pev | skóre: 28
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Tak tak - díky.
    3.6.2008 09:59 stick | skóre: 10 | Praha
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    "Na rozdíl od RPM (viz Seriál: Rukověť baliče RPM) není problém balíček pro Debian vytvořit bez použití speciálních nástrojů. Jediné, co potřebujeme, jsou nástroje ar a tar." ... a o par odstavcov nizsie: ... "Pro práci se zdrojovými balíčky používáme nástroj dpkg-source."

    Ale inak fajn serial, som zvedavy na dalsie casti. Snad sa naucim balit aj .deb baliky :)
    0118 999 881 999 119 725 3
    3.6.2008 11:55 Jirka | skóre: 36
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Problém by to asi nebyl, ale proč si komplikovat život? :-)
    3.6.2008 11:58 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    No jde to, ale nikde tam nepíšu, že je rozumné to tak dělat :-).
    Komunista avatar 3.6.2008 16:18 Komunista
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    ...a vcelku by ma potešil popis ako na to s ar (ty by som ešte možno zvládol) a tar, občas potrebujem zmeniť len prkotinu v existujúcom balíčku a akosi nemám odvahu sa do toho pustiť metódou pokus omyl :-)
    5.6.2008 12:09 R
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Ak vies obsluhovat programy ar a tar, tak na to ziadny navod nepotrebujes.
    3.6.2008 18:29 Jirka P
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Bude se seriál věnovat i novým formátům zdrojových balíků? Jak je to vlastně s jejich podporou? (uploadnout do Debianu se nedaj, je to tak?)
    4.6.2008 10:55 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 1 (úvod)
    Jenom okrajově, protože stejně zatím není jasné co a jak se nakonec bude používat. Ale díl, ve kterém to je, vyjde asi za dva měsíce, tak se to možná mezitím trochu ujasní :-).

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.