Distri – distribuce pro testování technologií rychlé správy balíčků

Michael Stapelberg, autor i3wm dlaždicového správce oken a bývalý aktivní vývojář Debianu (spravuje asi 170 balíčků), vyvíjí experimentální distribuce distri a správce balíčků se stejným názvem. Projekt je umístěn jako průzkum možných způsobů, jak zvýšit výkon systémů správy balíčků, a ztělesňuje některé nové nápady pro budování distribucí. Kód správce balíčků je napsán v Go a distribuovány pod licencí BSD.

Klíčovým rysem formátu balíčku distribuce je, že balíček je dodáván ve formě obrazů SquashFS namísto komprimovaných archivů tar. Použití SquashFS, podobně jako formáty AppImage a Snap, vám umožňuje „připojit“ balíček bez nutnosti jej rozbalovat, což šetří místo na disku, umožňuje atomické změny a obsah balíčku je okamžitě přístupný. Distri balíčky přitom stejně jako v klasickém „deb“ formátu obsahují pouze jednotlivé komponenty propojené závislostmi s jinými balíčky (knihovny se v balíčcích neduplikují, ale instalují se jako závislosti). Jinými slovy, distri se snaží zkombinovat granulární strukturu balíčků klasických distribucí, jako je Debian, s metodami doručování aplikací ve formě připojených kontejnerů.

Každý balíček v distri je připojen do svého vlastního adresáře v režimu pouze pro čtení (například balíček zsh je dostupný jako "/ro/zsh-amd64-5.6.2-3"), což má pozitivní vliv na bezpečnost a chrání proti náhodným nebo zlomyslným změnám. K vytvoření hierarchie adresářů služeb, jako jsou /usr/bin, /usr/share a /usr/lib, se používá speciální modul FUSE, který spojuje obsah všech nainstalovaných obrazů SquashFS do jednoho celku (například / ro/share adresář poskytuje přístup ke sdíleným podadresářům ze všech balíčků).

Balíčky v distrii zásadně doručeno z obslužných programů volaných během instalace (žádné háky nebo spouštěče) a různé verze balíčku mohou koexistovat, takže je možná paralelní instalace balíčků. Navrhovaná struktura omezuje výkon správce balíčků pouze na propustnost sítě, přes kterou se balíčky stahují. Vlastní instalace nebo aktualizace balíčku se provádí atomicky a nevyžaduje duplikaci obsahu.

Konflikty při instalaci balíčků jsou eliminovány, protože každý balíček je spojen se svým vlastním adresářem a systém umožňuje přítomnost různých verzí jednoho balíčku (obsah adresáře s novější revizí balíčku je součástí sjednocovacích adresářů). Sestavení balíčků je také velmi rychlé a nevyžaduje instalaci balíčků v samostatném prostředí sestavení (reprezentace potřebných závislostí z adresáře /ro se vytváří v prostředí sestavení).

Podporováno typické příkazy pro správu balíčků, jako je „distri install“ a „distri update“, a místo informačních příkazů můžete použít standardní nástroj „ls“ (například pro zobrazení nainstalovaných balíčků stačí zobrazit seznam adresářů v „ /ro” a chcete-li zjistit, ve kterém balíčku je soubor zahrnut, podívejte se, kam vede odkaz z tohoto souboru).

Prototypová distribuční sada navržená pro experimentování obsahuje cca 1700 balení a připraven instalační obrazy s instalátorem, vhodný jak pro instalaci jako hlavní OS, tak pro běh v QEMU, Docker, Google Cloud a VirtualBox. Podporuje bootování ze zašifrovaného diskového oddílu a sadu standardních aplikací pro tvorbu plochy na bázi správce oken i3 (jako prohlížeč je nabízen Google Chrome). Pokud kompletní sada nástrojů pro sestavení distribuce, přípravu a generování balíčků, distribuci balíčků prostřednictvím zrcadel atd.

Zdroj: opennet.ru

Přidat komentář