Distri — distribuční systém pro testování technologií rychlého spravování balíčků

Michael Stapelberg, autor dlaždicového správce oken i3wm a dříve aktivní vývojář Debianu (udržoval přibližně 170 balíčků), vyvíjí experimentální distribuce distri a stejnojmenný správce balíčků. Projekt se zaměřuje na zkoumání možných cest k zvýšení výkonu systémů správy balíčků a představuje několik nových myšlenek pro konstrukci distribucí. Kód správce balíčků je napsán v jazyce Go a distribuováno na základě licence BSD.

Klíčovým rysem formátu balíčků nabízeného v distribuci je dodávka balíčku ve formě obrazů SquashFS, místo komprimovaných tar archivů. Použití SquashFS, analogicky k formátům AppImage a Snap, umožňuje „přimontovat“ balíček bez nutnosti provádět rozbalení, což šetří diskový prostor, umožňuje atomové změny a činí obsah balíčku okamžitě dostupným. Při tom balíčky distri, podobně jako v klasickém formátu „deb“, obsahují pouze jednotlivé komponenty, které mají závislosti na ostatní balíčky (knihovny nejsou ve balíčkách duplikovány, ale instalují se jako závislosti). Jinými slovy, distri se snaží skloubit granuli strukturu balíčků klasických distribucí, jako je Debian, s metodami dodávky aplikací ve formě montovaných kontejnerů.

Každý balíček v distri je montován do svého adresáře v režimu pouze pro čtení (například balíček se zsh je dostupný jako „/ro/zsh-amd64-5.6.2-3“), což má pozitivní vliv na bezpečnost a chrání před náhodnými nebo zlými změnami. Pro vytváření hierarchie pomocných adresářů, jako jsou /usr/bin, /usr/share a /usr/lib, se používá speciální FUSE modul, který spojuje obsah všech nainstalovaných obrazů SquashFS do jednoho celku (například adresář /ro/share poskytuje přístup k podadresářům share ze všech balíčků).

Balíčky v distri jsou zásadně zbaveny od vyvolávaných během instalace zpracovatelů (žádné hooky a spouštěče), a různé verze balíčku mohou koexistovat, což umožňuje paralelizaci instalace balíčků. Navrhovaná struktura omezuje výkon správce balíčků pouze šířkou pásma sítě, přes kterou se balíčky stahují. Přímo instalace nebo aktualizace balíčku probíhá atomárně a nevyžaduje duplicitu obsahu.

Konflikty při instalaci balíčků jsou vyloučeny, protože každý balíček je spojen se svým adresářem a v systému je povoleno mít různé verze jednoho balíčku (do shromážděných adresářů se připojuje obsah adresáře s novější revizí balíčku). Sestavení balíčků je také velmi rychlé a nevyžaduje instalaci balíčků v samostatném sestavovacím prostředí (v sestavovacím prostředí se vytvářejí pohledy na potřebné závislosti z adresáře /ro).

Podporováno typické příkazy pro správu balíčků, jako „distri install“ a „distri update“, a místo informačních příkazů lze použít standardní nástroj „ls“ (například k zobrazení nainstalovaných balíčků stačí zobrazit seznam adresářů v hierarchii „/ro“, a abyste zjistili, do jakého balíčku patří soubor, podívejte se, kam odkazuje odkaz z tohoto souboru).

Navržený prototyp distribuce pro experimenty obsahuje přibližně 1700 balíčků a hotové instalační obrazy s instalátorem, vhodné jak pro instalaci jako hlavní OS, tak pro spuštění v QEMU, Docker, Google Cloud a VirtualBox. Podporuje se načítání z šifrovaného diskového oddílu a soubor aplikací pro vytvoření pracovní plochy na bázi správce oken i3 (jako prohlížeč je navrhován Google Chrome). Poskytuje se plnohodnotná sada nástrojů pro sestavení distribuce, přípravu a vytváření balíčků, distribuci balíčků na zrcadla atd.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster