Michael Stapelberg, autor mozaikového správcu okien i3wm a v minulosti aktívny vývojár Debian (zabezpečoval okolo 170 balíkov), experimentálnu distribúciu a rovnomenný správca balíkov. Projekt je prezentovaný ako výskum možných spôsobov zvyšovania výkonu systémov správy balíkov a realizuje niektoré nové nápady na stavbu distribúcií. Kód správcu balíkov je napísaný v jazyku Go a pod licenciou BSD.
Kľúčovou vlastnosťou navrhnutého formátu balíkov v distribúcii je dodávanie balíka vo forme obrazov SquashFS, namiesto komprimovaných tar-archívov. Použitie SquashFS, podobne ako formáty AppImage a Snap, umožňuje "pripojiť" balík bez potreby rozbalenia, čo šetrí diskový priestor, umožňuje atomárne zmeny a robí obsah balíka okamžite dostupným. Pri tom balíky distri, rovnako ako v klasickom formáte "deb", obsahujú len jednotlivé komponenty, ktoré sú závislé od iných balíkov (knižnice sa v balíkoch neduplicujú, ale inštalujú ako závislosti). Inými slovami, distri sa snaží skombinovať granularitu štruktúry balíkov klasických distribúcií, ako je Debian, s metódami dodávania aplikácií vo forme pripojiteľných kontajnerov.
Každý balík v distri je pripojený do svojho adresára v režime iba na čítanie (napríklad, balík s zsh je dostupný ako "/ro/zsh-amd64-5.6.2-3"), čo pozitívne ovplyvňuje bezpečnosť a chráni pred náhodnými alebo zlovoľnými zmenami. Na vytvorenie hierarchie pomocných adresárov, ako sú "/usr/bin", "/usr/share" a "/usr/lib", sa používa špeciálny FUSE modul, ktorý spája obsah všetkých nainštalovaných obrazov SquashFS do jedného celku (napríklad adresár "/ro/share" poskytuje prístup k podadresárom share zo všetkých balíkov).
v distri sú principiálne od volaných v průběhu instalace zpracovatelů (bez hooků a triggerů) a různé verze balíčku mohou koexistovat vedle sebe, což umožňuje paralelní instalaci balíčků. Navržená struktura omezuje výkon správce balíčků pouze na propustnost sítě, přes kterou jsou balíčky stahovány. Samotná instalace nebo aktualizace balíčku se provádí atomárně a nevyžaduje duplicitu obsahu.
Konflikty při instalaci balíčků jsou vyloučeny, protože každý balíček je vázán na svůj vlastní adresář, a v systému může existovat více verzí jednoho balíčku (v souhrnných adresářích se připojuje obsah adresáře s novější revizí balíčku). Sestavení balíčků také probíhá velmi rychle a nevyžaduje instalaci balíčků v samostatném sestavovacím prostředí (ve sestavovacím prostředí se vytvářejí pohledy na potřebné závislosti z adresáře /ro).
standardní příkazy pro správu balíčků, jako jsou „distri install“ a „distri update“, a místo informačních příkazů lze použít standardní utilitu „ls“ (například pro zobrazení nainstalovaných balíčků stačí vypsat seznam adresářů v hierarchii „/ro“, a abychom zjistili, do kterého balíčku patří soubor, zkontrolovat, kam vede odkaz z tohoto souboru).
Navržený prototyp distribuce pro experimenty zahrnuje přibližně a hotové s instalátorem, vhodné jak pro instalaci jako hlavní operační systém, tak pro spuštění v QEMU, Dockeru, Google Cloudu a VirtualBoxu. Podporuje se načítání z zašifrovaného diskového oddílu a sada standardních aplikací pro vytváření pracovního prostředí na základě správce oken i3 (jako prohlížeč se doporučuje Google Chrome). úplný nástroj pro sestavení distribuce, přípravu a vytváření balíčků, distribuci balíčků po zrcadlech atd.
Zdroj: opennet.ru
