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 18:22 | Nová verze

Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 9.0. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
dnes 14:00 | Komunita

Lars Knoll oznámil, že po 25 letech v ekosystému Qt, z toho 22 let pracující pro různé společnosti vlastnící Qt, odchází ze společnosti The Qt Company do malého norského startupu.

Ladislav Hagara | Komentářů: 1
dnes 13:22 | Zajímavý projekt

Na Kickstarteru běží kampaň na podporu mini ITX desky Turing Pi 2 Cluster Computer. Vložením 4 výpočetních modulů, podporovány jsou Raspberry Pi 4, Turing RK1 a Nvidia Jetson, lze získat 4uzlový cluster. Cena desky je 219 dolarů.

Ladislav Hagara | Komentářů: 1
dnes 10:00 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 198. brněnský sraz, který proběhne v pátek 20. května tradičně od 18 hodin v Pivovarské restauraci Moravia.

Ladislav Hagara | Komentářů: 2
dnes 07:00 | Zajímavý software

Byla vydána nová verze 0.25 herního enginu Fyrox, původně rg3d. Přehled novinek s kódy, náhledy i videi v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Nová verze

Multiplatformní audio přehrávač Qmmp (Wikipedie) byl vydán ve verzi 2.1.0. Z novinek lze zmínit například podporu XDG Base Directory Specification.

Ladislav Hagara | Komentářů: 0
včera 23:22 | Komunita

Letošní konference LibreOffice proběhne 28. září až 1. října v Bolzanu. The Document Foundation hledá přednášející.

Zdeněk Crhonek | Komentářů: 0
včera 14:11 | Zajímavý článek

Jiří Eischmann na MojeFedora.cz řeší, jak zlepšit konzistenci mezi GTK 4 a GTK 3. Pokud už používáte Fedora 36 Workstation, asi jste si všimli, že vzhled aplikací není tak konzistentní jako dřív. Aplikace, které jsou už portované na GTK 4 mají "ploché" téma vzhledu definované knihovnou libadwaita. Aplikace používající GTK 3 zůstávají u původního tématu Adwaita.

Ladislav Hagara | Komentářů: 13
včera 12:33 | Pozvánky

Byl zveřejněn program konference InstallFest 2022. Konference proběhne o víkendu 11. a 12. června v Praze na Karlově náměstí 13.

Ladislav Hagara | Komentářů: 1
včera 09:44 | Nová verze

Rocky Linux 8.6, klon Red Hat Enterprise Linuxu (RHEL) 8.6, byl vydán. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Na sociálních sítích nebo jiných webových diskuzích vystupuji pod
 (61%)
 (17%)
 (23%)
Celkem 271 hlasů
 Komentářů: 23, poslední dnes 16:14
Rozcestník


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

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

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.