Michael Stapelberg, a szerzője az i3wm mozaik ablakkezelőnek, aki korábban aktív Debian fejlesztő volt (kb. 170 csomagot tartott karban), kísérleti disztribúció és az azonos nevű csomagkezelő. A projekt célja, hogy kutassa a csomagkezelő rendszerek teljesítményének növelésének lehetséges módjait, és megvalósít néhány új ötletet a disztribúciók felépítésében. A csomagkezelő kódja Go nyelven íródott, és BSD licenc alatt.
A javasolt disztribúció csomagformátumának kulcsfontosságú jellemzője, hogy a csomagokat SquashFS képek formájában biztosítják, a tömörített tar-archívumok helyett. A SquashFS alkalmazása, hasonlóan az AppImage és Snap formátumokhoz, lehetővé teszi, hogy a csomagot «berakjuk» anélkül, hogy ki kellene bontanunk, ami megtakarítja a lemezterületet, atomikus változtatásokat tesz lehetővé, és azonnal hozzáférhetővé teszi a csomag tartalmát. A distri csomagok, akárcsak a klasszikus «deb» formátumban, csak külön komponenseket tartalmaznak, amelyek más csomagokkal függőségekkel vannak összekapcsolva (a könyvtárak nem ismétlődnek a csomagokban, hanem függőségként telepítik őket). Más szóval, a distri megpróbálja ötvözni a klasszikus disztribúciók, mint például a Debian, granulas csomagszerkezetét a mappázható konténerformájú alkalmazások szállítási módszereivel.
Minden csomag a distri-ban olvasásra jedzett könyvtárba van szerelve (például a zsh csomag a «/ro/zsh-amd64-5.6.2-3» elérhetőségén), ami pozitívan befolyásolja a biztonságot és megvédi a véletlen vagy rosszindulatú módosításoktól. Az olyan segédkönyvtárak hierarchiájának kialakításához, mint például /usr/bin, /usr/share és /usr/lib, egy speciális FUSE-modul alkalmazásra kerül, amely egyesít minden telepített SquashFS kép tartalmát egy egységes egésszé (például a /ro/share könyvtár hozzáférést biztosít a share almappához az összes csomagból).
a distri alapvetően a telepítés során hívott kezelőktől (nincsenek horgok és aktivátorok), és különböző csomagverziók együtt élhetnek, ezért lehetővé válik a csomagok párhuzamos telepítése. A javasolt struktúra csak a csomagok letöltési hálózati sávszélességéből adódó teljesítményt korlátozza. Közvetlen csomagtelepítés vagy frissítés atomikusan zajlik, és nem igényli a tartalom megismétlését.
A csomagok telepítési konfliktusai kizárták, mivel minden csomag a saját könyvtárával van összekötve, és a rendszer megengedi, hogy különböző verziói legyenek egy csomagnak (a frissített csomag verzió könyvtárának tartalma csatlakozik a gyűjtőkönyvtárakhoz). A csomagok összeállítása szintén nagyon gyorsan történik, és nem igényel külön telepítési környezetet (az összeállítási környezetben a szükséges függőségek nézete készül el a /ro könyvtárból).
A csomagkezelő parancsok, mint a „distri install” és a „distri update”, használhatók, a tájékoztató parancsok helyett pedig a szokásos „ls” segédprogramot lehet alkalmazni (például az telepített csomagok megtekintéséhez elegendő az „ /ro” hierarchiájában található könyvtárak listáját kiíratni, és hogy megtudjuk, hogy egy fájl melyik csomag összetevője, ellenőrizni, hogy hova mutat a fájl hivatkozása).
A kísérletezés céljára javasolt disztibúció prototípusa körülbelül és kész tartalmaz, amelyek alkalmasak alapértelmezett operációs rendszerként történő telepítésre, valamint QEMU, Docker, Google Cloud és VirtualBox környezetekben történő futtatásra. Támogatott a titkosított lemezosztályról való bootolás és egy tipikus alkalmazáskészlet a munkaterület létrehozásához az i3 ablakkezelő alapján (böngészőként a Google Chrome ajánlott). a disztibúció összeszereléséhez, a csomagok előkészítéséhez és formálásához, a csomagok tükrökre való terjesztéséhez stb.
Forrás: opennet.ru
