Hlavní navigace

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

Petr Krčmář

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é?

Našli jste v článku chybu?

20. 6. 2011 8:25

VM (neregistrovaný)

Balíčky co jdou nainstalovat na jakýkoliv systém s RPM řešila tuším LSB specifikace, takže pro RPM by univerzální balíček měl jít vytvořit (nezkoušel jsem). DEB je co vím kompatibilní minimálně mezi Ubuntu a Debian. Takže stačí vytvořit DEB a RPM balík, a to už se dá. Je to výrazně lepší řešení než popsaný 0conf - používá standardní balíčkovač, neinstaluje duplicitní knihovny do nestandardních cest, které pak nikdo neudržuje, nedochází ke kolizi verzí v systému.

0conf je použitelný jen p…

20. 6. 2011 14:17

belzebub (neregistrovaný)

Nemuzu si pomoci, ale jedine co me napada je: prasarna, windows, neschopnost, amaterstvi.

Vidim podobne pristupy na spouste mist a ve zkratce bych je popsal jako: "Hmm.. to je prilis slozite, ja chudak bez zkusenosti tomu vubec nerozumim.. ale co kdybych to udelal tak jak to umim? To bude super! To bude jednoduche!"

Mam pocit ze 0install je koncept, ktery vznikl na windows, protoze tam to v podstate jinak lip nejde. Proc ale tahat to same do sveta linuxu, kde je diky balickovacim systemum odpo…

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu