Michael Stapelberg, autor menedżera okien i3wm i były aktywny deweloper Debiana (odpowiedzialny za około 170 pakietów), eksperymentalna dystrybucja i nazwany na cześć menedżera pakietów. Projekt jest przedstawiany jako badanie możliwych sposobów zwiększenia wydajności systemów zarządzania pakietami i wciela w życie kilka nowych pomysłów dotyczących budowy dystrybucji. Kod menedżera pakietów napisany jest w języku Go i na licencji BSD.
Kluczową cechą zaproponowanego w dystrybucji formatu pakietów jest dostarczanie pakietu w postaci obrazów SquashFS, zamiast skompresowanych archiwów tar. Zastosowanie SquashFS, podobnie jak w formatach AppImage i Snap, pozwala na "zamontowanie" pakietu bez potrzeby jego rozpakowywania, co oszczędza miejsce na dysku, umożliwia atomowe zmiany i sprawia, że zawartość pakietu jest natychmiast dostępna. Pakiety distri, podobnie jak w klasycznym formacie "deb", zawierają tylko pojedyncze komponenty powiązane zależnościami z innymi pakietami (biblioteki nie są duplikowane w pakietach, a instalowane jako zależności). Innymi słowy, distri stara się połączyć granulatową strukturę pakietów klasycznych dystrybucji, takich jak Debian, z metodami dostarczania aplikacji w postaci montowanych kontenerów.
Każdy pakiet w distri montowany jest w swoim katalogu w trybie tylko do odczytu (na przykład pakiet z zsh dostępny jest jako "/ro/zsh-amd64-5.6.2-3"), co pozytywnie wpływa na bezpieczeństwo i chroni przed przypadkowymi lub złośliwymi zmianami. Do tworzenia hierarchii katalogów systemowych, takich jak /usr/bin, /usr/share i /usr/lib, zastosowano specjalny moduł FUSE, łączący zawartość wszystkich zainstalowanych obrazów SquashFS w jedną całość (na przykład katalog /ro/share zapewnia dostęp do podkatalogów share ze wszystkich pakietów).
w distri zasadniczo wywoływanych w trakcie instalacji obsługiwaczy (brak haków i wyzwalaczy), a różne wersje pakietu mogą współistnieć ze sobą, co umożliwia równoległe instalowanie pakietów. Proponowana struktura ogranicza wydajność menedżera pakietów jedynie do przepustowości sieci, przez którą pobierane są pakiety. Bezpośrednia instalacja lub aktualizacja pakietu odbywa się atomowo i nie wymaga duplikowania zawartości.
Konflikty podczas instalacji pakietów są wykluczone, ponieważ każdy pakiet jest powiązany ze swoim katalogiem, a w systemie mogą występować różne wersje tego samego pakietu (do katalogów zbiorczych dołączana jest zawartość katalogu z nowszą wersją pakietu). Pakiety są także budowane bardzo szybko i nie wymagają instalacji w oddzielnym środowisku budowy (w środowisku budowy tworzone są widoki wymaganych zależności z katalogu /ro).
Standardowe polecenia zarządzania pakietami, takie jak „distri install” i „distri update”, a zamiast poleceń informacyjnych można używać standardowego narzędzia „ls” (na przykład, aby zobaczyć zainstalowane pakiety, wystarczy wyświetlić listę katalogów w hierarchii „/ro”, a żeby dowiedzieć się, do którego pakietu należy plik, sprawdzić, dokąd prowadzi link z tego pliku).
Prototyp dystrybucji zaproponowany do eksperymentów obejmuje około i gotowe z instalatorem, nadające się zarówno do instalacji jako główny system operacyjny, jak i do uruchamiania w QEMU, Dockerze, Google Cloud i VirtualBoxie. Oferowane jest uruchamianie z zaszyfrowanej partycji dyskowej i zestaw standardowych aplikacji do stworzenia pulpitu na podstawie menedżera okien i3 (jako przeglądarkę proponuje się Google Chrome). kompletne narzędzia do budowy dystrybucji, przygotowania i tworzenia pakietów, dystrybucji pakietów przez lustra itp.
Źródło: opennet.ru
