Portál AbcLinuxu, 1. května 2025 07:00

Instalace softwaru v Linuxu - 4 (Zero Install)

6. 6. 2007 | Michal Vyskočil
Články - Instalace softwaru v Linuxu - 4 (Zero Install)  

Zero Install je decentralizovaný instalační systém, v němž neexistuje centrální repozitář a balíčky jsou identifikovány pomocí URL. Umožňuje paralelní instalaci různých verzí sdílených knihoven a obsahuje bezpečnostní prvky.

Všechny popisy balíčků jsou podepsány pomocí GPG a obsahují kryptografický otisk. Každá verze programu je uložena ve vlastním podadresáři uvnitř Zero Install cache (instalace probíhá výhradně do ní) a v průběhu instalace či deinstalace není prováděn žádný kód uvnitř balíčku. Systém umožňuje automatický update nainstalovaných balíčků.

Protože je decentralizovaný, aplikace a knihovny jsou identifikovány pomocí URI. Uživatel nežádá instalaci nějakého programu, on jej prostě spustí. Systém potom požádá o stažení aplikace a zkontroluje dostupné updaty. Pro nalezení binárního balíčku systém stáhne informace o dostupných verzích. Běžně má každý balíček jeden feed, jehož URL je URI balíčku. To znamená, že pokud chceme spustit aplikaci http://site/someprog systém automaticky začne stahovat feed z této adresy.

Každý feed je digitálně podepsaný XML soubor, který obsahuje dostupné verze balíčku a všechny závislosti, které jsou rovněž uvedeny jako URI. Každý uživatel má seznam důvěryhodných GPG klíčů a je vyzván k importu nových, pokud chce použít obsah feedu. Jako pomoc uživateli obsahuje systém databázi známých GPG. Protože je k dispozici seznam dostupných verzí, systém automaticky určí instalovanou verzi a kompatibilní knihovny. Uživatel tuto volbu může ovlivnit. Systém potom stáhne vybranou verzi, rozbalí ji do cache a spustí. Každý rozbalený archív má vlastní podadresář, takže nehrozí žádné konflikty. Proměnné prostředí nutné pro správný běh takových programů jsou nastaveny automaticky. Různé programy tedy mohou používat jiné verze stejné knihovny, což je klíčová vlastnost decentralizovaného systému, protože nevyžaduje synchronizaci updatů. Stejně jako v případě Autopackage, i Zero Install musí mít binárky přemístitelné.

Uživatel typicky instaluje přetažením odkazu z webové stránky do spouštěcí aplikace. V konzoli můžeme použít URL jako parametr příkazu 0alias, který vytvoří alias na danou aplikaci. Instalace nezačíná pouhým kliknutím, protože jde podle autora o potenciálně nebezpečnou operaci, protože ji webová stránka může spustit kdykoliv sama. Zero Install je aktivně vyvíjen jedním vývojářem, který podpůrné programy uvolnil pod LGPL. Mnoho lidí poskytuje XML feedy pro svůj software a velmi často je používán komunitou kolem ROX desktopu. V současnosti je dostupných přibližně 90 balíčků a kolem 100 feedů (některé se týkají stejné aplikace ale jiných platforem a jsou poskytovány jinými lidmi, ovšem primární zdroj může na tyto vedlejší zdroje odkazovat).

Základní výhodou Zero Install je fakt, že jde o distribuovaný systém (ne centralizovaný jako Klik), má dobré bezpečnostní základy a umožňuje instalaci bez práv roota. V současné době neexistuje žádná forma interakce s distribucí. To znamená, že aplikace závisející na knihovnách Berkley DB bude vždy používat verzi ze Zero Install a ne distribuční. Nicméně, všechny aplikace instalované pomocí Zero Install jsou uloženy ve vlastním podadresáři, takže nijak nezasahují do distribučních aplikací. Zero Install nevyžaduje žádný speciální formát pro distribuci. Umí rozbalit tarchívy, zipy, rpm soubory, deb balíčky a dokonce i autopackage balíky, pouze nespouští žádné pre- nebo post- instalační skripty, které by mohly být v těchto souborech přítomny.

Používáme

Základem je stažení a instalace balíčku zeroinstall-injector. Autor poskytuje balíčky pro mnoho distribucí (zde vidíte přesně ty důsledky současného stavu, o kterých byla zmínka v prvním díle). Uživatelé distribuce Fedora jej mají přímo v Extras, uživatelé Ubuntu od Feisty Fawn ji mají v repozitáři Universe. Pro distribuci Debian autor momentálně shání sponzora, zatím je dostupný ve formě zdrojových kódů v repozitáři http://mentors.debian.net/.

Pokud používáte prostředí ROX desktop, můžete pro instalaci pomocí Zero Install použít program AddApp. Pokud Xfce, pak můžete přetahovat odkazy na lištu, což spustí proces instalace. Uživatelé shellu mohou použít program 0alias, který jim vykoná podobnou službu, navíc ovšem nastaví alias na daný program.

Instalace prostřednictvím Zero Install je jednoduchá. Následující příkaz, který spustíte jako normální uživatel, vám nainstaluje našeho pokusného králíka, editor Inkscape.

0launch http://0install.net/2006/3rd-party/Inkscape.xml

Aplikace se nejprve zeptá na to, zda člověk důvěřuje některému z klíčů:

zero install

zobrazí se hlavní obrazovka:

zero install

a občas také chyba, když nejsou v systému potřebné dekompresní nástroje (příkaz aptitude install lzma problém vyřešil):

zero install

Po určité době potřebné ke stažení je aplikace automaticky spuštěna. Příkazem 0alias alias url si navíc můžeme nechat vygenerovat skript, kterým budeme aplikaci spouštět, takže není nutné pokaždé zadávat 0launch url.

Je také dobré vědět, že jsou konfigurační soubory systému uloženy v adresáři ~/.config/0install.net a uložené soubory zase v ~/.cache/0install.net. Odstranění programu se provádí vymazáním příslušného adresáře nebo graficky z cache programu 0launch.

Pokročilé vlastnosti

V minulých dílech jsme si ukázali systémy Autopackage a Klik. Ovšem Zero Install se od nich v několika ohledech výrazně odlišuje. Se systémem autopackage má společnou myšlenku URL, které jednoznačně identifikuje balíček.

Více je na stránce projektu.

Je možné nastavit chování systému, jak ukazuje konfigurační dialog:

zero install

První položkou je nastavení využití sítě. Možnosti jsou off-line, kdy se síť vůbec nepoužívá (ovšem také nemusí být možné spustit všechny programy). Při nastavení Minimal bude systém preferovat již stažené verze a minimalizovat využití připojení. Možnost Full potom způsobí, že aplikace bude stahovat vše, co bude moci. Také je možné nastavit kontrolu aktuálnosti nainstalovaného softwaru, kterou provede injektor automaticky při spuštění aplikace. Poslední možností je povolení instalace vývojových verzí.

Překlad

Autor nezapomněl ani na podporu pro zdrojové balíky a podporu překladu. Na stránce projektu představuje nástroj 0compile, který umožňuje překlad balíku ze zdrojových kódů. Prvním krokem je stažení nástroje pomocí injektoru:

0alias 0compile http://0install.net/2006/interfaces/0compile.xml

Dále je nutné stáhnout zdrojové kódy, na stránkách s dokumentací je použit GNU Hello:

0compile setup http://0install.net/tests/GNU-Hello.xml GNU-Hello

který pomocí 0launch --source stáhne zdrojové kódy. V aktuálním adresáři se objeví GNU-Hello, který obsahuje pouze soubor 0compile-env.xml obsahující kompilační instrukce. Všechny příkazy je nutné provádět z tohoto adresáře. Příkaz 0compile setup zobrazí klasický konfigurační dialog

zero install

Příkaz 0compile build potom software přeloží:

0compile build
Not using sandbox (plash not installed)
Executing: "$SRCDIR/configure" --prefix="$DISTDIR" && make install

Závislosti jako gcc nebo libc-dev je nutné nainstalovat klasickým způsobem, protože jejich Zero Install varianta (zatím) neexistuje.

Příkazem

0launch gnu-hello-1.3/0install/GNU-Hello.xml

potom spustíte samotnou aplikaci. Zero Install toho dokáže daleko víc a vše je popsáno v dokumentaci.

Závěr

Zero Install mi osobně přišel jako zatím nejpropracovanější systém vůbec. Autor dbá na bezpečnost, nezapomíná na aktualizace a umožňuje výběr mezi stabilní a nestabilní verzí softwaru.

Seriál Instalace softwaru v Linuxu (dílů: 4)

První díl: Instalace softwaru v Linuxu - 1 (co je špatně), poslední díl: Instalace softwaru v Linuxu - 4 (Zero Install).
Předchozí díl: Instalace softwaru v Linuxu - (Klik)

Související články

Smart Package Manager - instalujeme chytře
Na co se často ptáme: Balíčkovací systémy
Balíčkovací systém Mandrake Linuxu
Balíčkovací systém Gentoo Linuxu
Seriál: Balíčkovací systém Arch Linuxu
Seriál: Rukověť baliče RPM
Seriál: Gentoo ebuild

Odkazy a zdroje

0install.net

Další články z této rubriky

Úvod do Dockeru (1)
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Unixové nástroje – 26 (triky pro práci v Bashi)
Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
Linux: systémové volání splice()

Diskuse k tomuto článku

6.6.2007 13:01 jiri.b | skóre: 30 | blog: jirib
Rozbalit Rozbalit vše Re: Instalace softwaru v Linuxu - 4 (Zero Install)
Odpovědět | Sbalit | Link | Blokovat | Admin
ten GTK theme je humpolec :)

http://jp.bizet.free.fr/themes/gtk2.html
6.6.2007 14:38 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: Instalace softwaru v Linuxu - 4 (Zero Install)
...ale mě se taky líbí, mám ho na Slackware i na Gentoo :-D
6.6.2007 15:13 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Instalace softwaru v Linuxu - 4 (Zero Install)
No poslední screenshoty pocházejí z Etche a mimo instalace Ia Ora (kvůli zachování vizuální konzistence s předchozími díly z Mandrivy) jsem s gtk nic nedělal (proč taky, když používám hlavně KDE :-P).
When your hammer is C++, everything begins to look like a thumb.
6.6.2007 18:51 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: Instalace softwaru v Linuxu - 4 (Zero Install)
Já dlouho jel na KDE, ale používal gtk aplikace (firefox, ethereal, ...).. ale to bylo na Fedora Core 3 a tam bylo takové pěkné theme :-) .. ale do Slacka mi nešlo nainstalovat, nějaký soubor knihoven (Cleverlook) byl třeba a ten se mi nepodařilo zkompilovat..

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.