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.

widgety

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?
Vitalia.cz: 5 důvodů, proč jet na výlov rybníka

5 důvodů, proč jet na výlov rybníka

Lupa.cz: Co všechno je Facebook schopný cenzurovat?

Co všechno je Facebook schopný cenzurovat?

DigiZone.cz: Jaká je Swisscom TV Air Free

Jaká je Swisscom TV Air Free

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

Root.cz: Podívejte se na shořelé Samsung Note 7

Podívejte se na shořelé Samsung Note 7

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Vitalia.cz: Nová vakcína proti chřipce se aplikuje nosem

Nová vakcína proti chřipce se aplikuje nosem

Lupa.cz: Blíží se konec Wi-Fi sítí bez hesla?

Blíží se konec Wi-Fi sítí bez hesla?

Měšec.cz: „Ukradli“ jsme peníze z bezkontaktních karet

„Ukradli“ jsme peníze z bezkontaktních karet

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Lupa.cz: Adblock Plus začal prodávat reklamy

Adblock Plus začal prodávat reklamy

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

Podnikatel.cz: Nemá dluhy? Zjistíte to na poště

Nemá dluhy? Zjistíte to na poště

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

DigiZone.cz: Regionální tele­vize CZ vysílá "Mapu úspěchu"

Regionální tele­vize CZ vysílá "Mapu úspěchu"

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle

DigiZone.cz: Budoucnost TV vysílání ve Visegrádu

Budoucnost TV vysílání ve Visegrádu

Vitalia.cz: Vodárny varují: Ve vodě z kohoutku jsou bakterie

Vodárny varují: Ve vodě z kohoutku jsou bakterie