Zero install: univerzální balíčkovací systém

Petr Krčmář 20. 6. 2011

Taky vás dokáže naštvat, když si chcete z webu stáhnout balíček nové aplikace a zjistíte, že pro vaši distribuci jej nedělají? Jak by v takové chvíli pomohl univerzální balíčkovací systém, který by fungoval napříč distribucemi. Několik jich existuje a my si dnes jeden velmi šikovný představíme.

Sen o univerzálních balíčcích

Balíčkovací systém je jedna z nejlepších věcí na linuxových operačních systémech. Neuvěřitelně zjednodušují člověku život, nabízejí spoustu automatiky, udržují váš systém aktualizovaný a dávají vám přístup k desítkám tisíc aplikací. Stačí jen říct, co chcete a všechno za vás bude zařízeno a do budoucna udržováno.

Bohužel to má (nejméně) jednu podstatnou nevýhodu. Dělá to těžkou hlavu všem, kteří se snaží pro Linux vyvíjet aplikace. Aby se jejich aplikace dostala k uživatelům, je třeba připravovat několik různých typů balíčků, navíc často rozdílných pro různé odnože distribucí (nestačí jen deb a rpm a je hotovo) a situace se komplikuje. Namísto soustředění na vývoj je třeba se učit vyrábět balíčky tím správným způsobem a sledovat vývoj řady distribucí.

Snem každého takového vývojáře je pak jeden univerzální balíčkovací systém, který by dokázal zaštítit instalaci a aktualizaci software napříč různými operačními systémy. Neměl by se omezovat ani jen na Linux, ale prostě být co nejuniverzálnější. Z hlediska uživatele by to byla také výhra. Nemuseli bychom řešit, jestli je tenhle pěkný nový program jen pro protežované Ubuntu, nebo i pro naši oblíbenou Fedoru.

Existuje několik různých pokusů o podobný balíčkovací systém, ale zatím nejnadějněji vypadá Zero Install, který navíc nedávno vyšel v první ostré verzi. Má řadu pokročilých vlastností, velmi dobře se používá a proti tradičním balíkovačům integrovaným v systémech má i několik zajímavých vlastností.

Nulová instalace

To podstatné hned na začátek: Zero Install se nesnaží nahradit váš standardní balíčkovací systém, ale staví se zcela mimo něj. Pokud si jej tedy pořídíte, budete mít dva různé typy balíčků. Nemusí vás to ale vůbec trápit, nedojde k žádné kolizi, nebudete muset vůbec nic řešit a jednoduše budete mít možnost instalovat další software z nových zdrojů.

Zero Install je na rozdíl od ostatních konkurentů decentralizovaný. Nevytváří vlastní repositáře s tisíci balíčky, ale jednoduše nechává vše na vývojářích software. Na vývojáři je jen připravit jednoduchý komprimovaný soubor (kompresní program je v podstatě libovolný) s binárními soubory ve správných adresářích a jednoduchého XML, které popisuje, o co jde a kde je možné to najít.

Tento XML soubor je pak vystaven na webu projektu s textem „Nainstalujte pomocí 0install“ nebo podobným. Soubor obsahuje základní informace o aplikaci jako je název, popis, verze a podobně, ale především informaci o samotných komprimovaných archivech s programem. Těch může být více pro různé architektury. Zero Install se totiž nezaměřuje jen na Linux, ale můžete jím instalovat aplikace i pro další unixové systémy, MS Windows či Mac OS X. K jedné aplikaci tak existuje jediný XML soubor a instalátor si podle něj vybere, co bude třeba stahovat (třeba i 32 či 64bitovou verzi).

Jakmile rozkážete k instalaci, balíčkovač si stáhne XML, vybere si, co potřebuje, stáhne to a rozbalí. Přitom řeší i závislosti, které jsou opět vepsány do XML i s cestami k nim. Může se tak stáhnout několik archivů. Ty se následně rozbalí na disk a je konec. Tedy je nainstalováno. Z archivu se nic při instalaci nespouští, prostě se jen rozbalí do jednoho jediného adresáře. Odinstalaci tak můžete klidně provést jeho jednoduchým smazáním.

Aby byla instalace bezpečná, jsou balíčky digitálně podepsány a vy budete mít možnost ověřit, zda instalujete skutečně to, co jste zamýšleli.

Teď přijde zásadní informace: rozbalení archivu proběhne v uživatelském adresáři ~/.cache/0install.net. Nic se nezapisuje do systému, nic nekoliduje s už nainstalovanými balíčky. Navíc to funguje i v systémech, ke kterým nemáte administrátorská oprávnění.

Nevýhodou naopak je, že se vám některé balíčky (hlavně knihovny) na disku duplikují. Například GTK budete mít pravděpodobně i v operačním systému, ale první GTK aplikace instalovaná přes Zero Install si jej stáhne taky. To je daň za bezproblémový provoz a univerzálnost.

Pokud budete mít přesto zájem alespoň sdílet cache mezi uživateli, můžete tuto funkci zapnout a začne se využívat adresář /var/cache/0install.net/. Nebudou vám tak růst nároky na prostor na počítačích využívaných více uživateli.

Praktická ukázka

Pro začátek práce se Zero Install je potřeba získat samotný správce balíčků. Ten buďto stáhnete z domovského webu projektu, nebo jej najdete už ve svých repositářích. V Debianu nebo Ubuntu tak bude stačit nainstalovat balíček zeroinstall-injector. Ten obsahuje vše potřebné.

Pak už stačí jen najít si nějaké balíčky. Nejjednodušší je opět navštívit domovský web, kde jich najdete celé hromady. Pak už stačí si vybrat a na řádce spustit:

# 0launch http://www.nongnu.org/clanbomber/zeroinstall/ClanBomber.xml

Proběhnou potřebné akce a aplikace (v tomto případě hra) se spustí. Zero Install totiž akci „Nainstaluj a spusť“ zjednodušuje na “Spusť“, protože to je z pohledu uživatele to, co je třeba udělat. Vždycky ale spouštět aplikaci tímto způsobem je krajně nepohodlné, a tak můžete využít utilitu 0alias, která vám vytvoří jednoduchý spouštěcí skript v některém ze zapisovatelných adresářů, které máte v $PATH.

Samozřejmě práce na řádce není jediným způsobem, jak Zero Install využít, existuje pohodlnější grafická varianta. Balíčkovač se totiž integruje do operačního systému tak, že se do aplikačního menu přidají dvě položky. Jedna umožňuje aplikace přidávat a druhá spravovat.

Při spuštění grafického instalátorku budete v malém dialogu dotázáni na URL popisného souboru (XML) a poté proběhne automatické stažení všeho potřebného. Po instalaci budete dotázáni na to, kam do menu chcete umístit patřičnou položku. Podle kategorie balíčku je vybráno správné umístění, ale můžete je změnit.

Program se jednoduše objeví v menu, odkud jej pak můžete spouštět.

V jednoduchém správci nainstalovaných balíčků pak máte možnost aplikaci spustit, přečíst si její dokumentaci, aktualizovat ji nebo ji smazat. Víc možností nemáte, ale není to ani potřeba.

Příjemné a překvapivě funkční

Zero Install mě překvapil svou jednoduchostí a přímočarostí. Mohli bychom říct, že se jedná o správce „portable verzí“ aplikací, které jsou známé ze světa Windows. Není třeba je instalovat do systému, ale zároveň nad nimi správce drží ochrannou ruku, aktualizuje je a umožňuje vám je zase pohodlně smazat.

Pro linuxové prostředí by mohlo být větší rozšíření balíčků pro Zero Install velmi příznivé. Vývojáři nezaměření přímo na Linux by se už nemuseli bát bezbřehosti linuxového světa, ale správný balíček by dokázali vytvořit naprosto bez problémů a univerzálně.

Nakonec byste tak mohli přijít na jejich web a najít tam k instalaci jediný odkaz s tím, že pro jeho využití si máte nejdříve pořídit Zero Install. Odpadly by tak problémy s nekompatibilitou, ruční řešení závislostí u špatně sestavených balíčků a nadávání nad tím, že zrovna pro mou distribuci balíček připraven nebyl. Líbí se vám takhle představa také?

Ohodnoťte jako ve škole:

Průměrná známka 1,45

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

120na80.cz: Velký přehled: 7 očkování proti exotickým nemocem

Velký přehled: 7 očkování proti exotickým nemocem

Lupa.cz: Kam si doma dáte internet věcí? Na polici?

Kam si doma dáte internet věcí? Na polici?

120na80.cz: Co lidi tropí se sádrou

Co lidi tropí se sádrou

Lupa.cz: Nová podoba Instagramu? Katastrofa

Nová podoba Instagramu? Katastrofa

Podnikatel.cz: Konečně vývar. Skoro jako od Steva Jobse

Konečně vývar. Skoro jako od Steva Jobse

Podnikatel.cz: Alza radí e-shopům, jak opustit Heureku

Alza radí e-shopům, jak opustit Heureku

120na80.cz: Jak si udržet zdravou vaginu

Jak si udržet zdravou vaginu

120na80.cz: 5 triků, jak zastavit krvácení po holení

5 triků, jak zastavit krvácení po holení

Vitalia.cz: Ministerstvo: tyto příbory jsou nebezpečné

Ministerstvo: tyto příbory jsou nebezpečné

Lupa.cz: Přenos hokeje padal kvůli útoku, tvrdí O2

Přenos hokeje padal kvůli útoku, tvrdí O2

Lupa.cz: Jak EET vidí ajťák aneb Drahá vražda UX

Jak EET vidí ajťák aneb Drahá vražda UX

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

DigiZone.cz: Šlágr TV: pokuta 100 tisíc za on-line

Šlágr TV: pokuta 100 tisíc za on-line

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

Vitalia.cz: Syndrom počítačového vidění: stačí dvě hodiny denně

Syndrom počítačového vidění: stačí dvě hodiny denně

Vitalia.cz: Sója a rakovina

Sója a rakovina

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

DigiZone.cz: Konec geoblokace online médií?

Konec geoblokace online médií?

Lupa.cz: Babiš: nevím o návodu, jak obejít blokování webů

Babiš: nevím o návodu, jak obejít blokování webů