Dedinčan odporúča...

VirtualBox logoVirtualBox je virtualizačný nástroj, ktorý umožňuje v jednom operačnom (tzv. hostiteľský) systéme spúšťať druhé (tzv. hosťovské). Samozrejme, môžu to byť rovnaké systémy, ale nemusia, a tak môžete mať v Linuxe nainštalovaný Windows, či naopak.

Balíčkovanie - úvod

Kategória: Debian GNU/Linux
Upravené: piatok, 16. máj 2008

Systém balíčkov je to, čo v Linuxe milujem a v Debiane zvlášť. Som uchvátený aké je to jednoduché - napíšete pár znakov do konzoly alebo niekoľkokrát kliknete myšou a máte akýkoľvek dostupný program. Žiadny setup.exe, ktorý je každý iný, všetko rovnaké a fungujúce.

Konečne som sa odhodlal splniť si dávne predsavzatie a zosumarizovať informácie o balíčkovacom systéme Debianu a na ňom založených distribúcií. Hoci je balíčkovací systém vo svojej podstate pre používateľa jednoduchou záležitosťou, ide o rozsiahly systém, ktorý má nástroje pre prácu na rôznych úrovniach. Aj preto som sa rozhodol napísať sériu článkov, v ktorých sa chcem postupne venova:

  • základným informáciám;
  • nástrojom dpkg a spol;
  • nástrojom z rodiny apt;
  • nadstavbám nad apt (konzolovým aj grafickým);
  • doplnkovým nástrojom;
  • úprave a tvorbe balíčkov;

Dnes začnem od začiatku, a to spoločnými informáciami a pojmami, bez ktorých je pochopenie správy balíčkov možno až nemožné.

Balíček

Základom celého balíčkovacieho systému je (prekvapujúco) balíček. Tento pojem je spoločný pre väčšinu Linuxových distribúcií. K najrozšírenejším patria balíčky RPM a DEB. Balíčky RPM rozpoznáte podľa prípony .rpm, čo je vlastne skratka pre RedHat Package Manager (niekde aj Management) a sú používané najmä v distribúciách ako RedHat, Fedora, Mandriva, Suse a podobne. Tie druhé sú charakteristické pre distribúciu Debian a jej odvodeniny ako Ubuntu, či Knoppix. V ďalšom sa budem venovať namä balíčkom Debianu.

V Debiane sa stretnete v zásade s dvoma typmi balíčkov - tzv. binárny, ktorý obsahuje vyššie spomínaný predkompilovaný program a tzv. zdrojový, ktorý obsahuje zdrojové kódy programu. Zdrojový balíček (ang. Source Package) má príponu tar.gz a, ako napovedá prípona, jedná sa o archív tar, spakovaný programom gzip, ktorý obsahuje zdrojové kódy programu, vrátane patchov (úprav) pripravených a používaných vývojármi Debianu.

Binárny balíček (ang. Package) má už spomínanú príponu .deb a je alternatívou ku kompilácii programu so zdrojových kódov a taký súbor balíčka nie je ničím iným ako archívom, ktorý môžete rozbaliť nástrojom ar. Tento archív sa skladá z dvoch častí, jedna obsahuje predkompilovaný program (data.tar.gz) a druhá informácie pre balíčkovací systém (control.tar.gz). Ak používate Midnight Commander, tento sa dokáže pracovať priamo s balíčkovým archívom a stlačením [enter] sa dostanete priamo k adresárom data a control.

Takýto balíček v sebe nesie okrem samotného programu (či iných dát) aj úplnú informáciu o tom, čo balíček svojej správnej činnosti potrebuje alebo naopak nepotrebuje. Ako aj o činnostiach, ktoré je potrebné pri jeho inštalácii, či odinštalácii, vykonať. Čiže rôzne konfiguračné úkony, ktorých vykonanie zabezpečí správca balíčkov (ang. Package Manager).

Balíčkovací systém

Samotný balíček je v podstate na nič. Ja viem, možno ho rozbaliť, jeho obsah prekopírovať a s trochou šťastia program aj používať, ale to by už bolo lepšie a asi aj jednoduchšie si program sami preložiť. Prekladanie programov bol kedysi štandardný postup ako dostať program do počítača. Takýto postup však vyžadoval od používateľa dosť znalostí a často prinášal problémy, spojené najmä s rôznymi zdieľanými knižnicami. Bezproblémové nie je ani odinštalovanie ručne preloženého programu. Tu práve vstupuje do boja balíčkovací systém, či správa balíčkov.

Balíčkovací systém sa postará o nainštalovanie a odinštalovanie programu, ale samotný balíček nesie v sebe aj informáciu o tom, ktoré programy už musia byť v systéme nainštalované, aby ten novoinštalovaný správne fungoval. Obsahuje aj informáciu, ktoré programy v systéme byť nainštalované nesmú. A to všetko dokonca do takých detailov ako je napríklad verzia programu. Keďže sú programy v balíčku už preložené, obsahuje aj informácie o platforme, pre ktorú je daný program pripravený a mnoho ďalších informácií.

Samotný balíčkovací systém však nerobí nič, je to abstraktný pojem a pre vykonávanie činnosti potrebuje nejakého správcu, ktorého úlohy plnia v Debiane programy dpkg, súprava apt a ich rôzne nadstavby, ale o tom niekedy inokedy.

Úložisko

Teraz možno trochu predbieham, ale je to jeden zo základných pojmov. Úložisko (ang. Repositary) je miesto, kde sú zhromaždené balíčky. S úložiskom balíčkov nedokáže pracovať nástroj dpkg, ale až nástroje apt a jeho nadstavby. Také úložisko balíčkov obsahuje, okrem balíčkov samotných, aj zoznam všetkých obsiahnutých balíčkov, so základnými informáciami o nich. Pre zvýšenie bezpečnosti vyžaduje balíčkovací systém aby boli tieto úložiská digitálne podpísané, čím chráni používateľov pred nainštalovaním potencionálne nebezpečeného balíčka.

Balíčkovaciemu systému je možné nastaviť viacero úložísk, z ktorých získa jednotlivé informácie, spracuje ich a používateľovi poskytne jeden zoznam dostupných balíčkov, takže navonok ani nespozná, že balíčky získava z rôznych zdrojov. Konfiguráciu hľadajte v súbore /etc/apt/sources.list, ktorý môže obsahovať zoznam viacerých úložísk. V poslednej dobe sa však čoraz častejšie využíva aj konfiguračný adresár /etc/apt/sources.list.d, ktorý môže obsahovať ďalšie súbory s konfiguráciou úložísk. Ich syntax je úplne rovnaká ako pri súbore /etc/apt/sources.list a pre ich meno platí podmienka, že musí mať príponu .list, inak je súbor ignorovaný.

A čo všetko môže byť úložiskom? V podstate všetko - CD, DVD, lokálny súborový systém, webové úložisko dostupné cez protokol HTTP aj FTP.

Závislosti

Tohoto pojmu som sa tiež už jemne dotkol. Dnes totiž mnohé programy nedokážu bežať samostatne, ale pre svoj beh vyžadujú programy iné. Najčastejtšie sa jedná o zdieľané knižnice, ktoré poskytujú iným programom svoje funkcie. Zdieľané knižnice sa stali neslavne známe, a to najmä pre problémy s nimi spojené v systéme Windows. Nie sú však v žiadnom prípade vynálezom Microsoftu, skôr naopak, veď programátori už dávno prišli na to, že je zbytočné často sa opakujúce činnosti programovať stále znova

Ak teda nainštalujete nejaký program a ten v systéme nenájde požadovanú knižnicu, samozrejme nemusí fungovať správne (prípadne vôbec). V takomto prípade sa jedná o tzv. vyžadované závislosti. Pričom program môže vyžadovať závislosť na konkrétnej verzii. Každý balíček nesie v sebe informáciu o svojich závislostiach, takže nie je potrebné po nich zložito pátrať. Systém závislostí je založený na závislosti na iných balíčkoch, takže nájdete priamo meno balíčka, ktorý je treba vopred nainštalovať.

Okrem týchto vyžadovaných závislostí, nesie v sebe balíček informáciu aj o balíčkoch, ktoré sú potrebné na preloženie zdrojového balíčka, či o balíčkoch, ktoré v systéme byť nesmú, pretože by dochádzalo ku kolíziám. V balíčku však vývojári poskytujú aj zoznam odporúčaných balíčkov, teda balíčkov, bez ktorých program fungovať bude, ale nejakým spôsobom ho vhodne dopĺňajú.

Copyright © 2008 - 2012 Sprievodca dedinčana... Niektoré práva vyhradené.
Ak nie je uvedené inak, obsah podlieha licencii „Creative Commons Uveďte autora – Zachovajte licenciu 3.0 Unported

Nenasledovať tento odkaz, inak budete maž zakázaný prístup na stránku!