Distri - en distribution för att testa snabba pakethanteringsteknologier

Michael Stapelberg, författare till i3wm sida vid sida-fönsterhanteraren och tidigare aktiv Debianutvecklare (underhöll cirka 170 paket), utvecklar experimentell fördelning distri och en pakethanterare med samma namn. Projektet är positionerat som en utforskning av möjliga sätt att öka prestandan hos pakethanteringssystem och förkroppsligar några nya idéer för att bygga distributioner. Pakethanterarkoden är skriven i Go och levererad av under BSD-licensen.

En nyckelfunktion i distributionens paketformat är att paketet levereras i form av SquashFS-bilder, istället för komprimerade tar-arkiv. Genom att använda SquashFS, liknande formaten AppImage och Snap, kan du "montera" ett paket utan att behöva packa upp det, vilket sparar diskutrymme, tillåter atomära ändringar och gör innehållet i paketet omedelbart tillgängligt. Samtidigt innehåller distri-paket, som i det klassiska "deb"-formatet, endast enskilda komponenter länkade av beroenden med andra paket (bibliotek dupliceras inte i paket, utan installeras som beroenden). Med andra ord, distri försöker kombinera den granulära paketstrukturen för klassiska distributioner som Debian med metoderna för att leverera applikationer i form av monterade behållare.

Varje paket i distri är monterat i sin egen katalog i skrivskyddat läge (till exempel är paketet med zsh tillgängligt som "/ro/zsh-amd64-5.6.2-3"), vilket har en positiv effekt på säkerheten och skyddar mot oavsiktliga eller skadliga ändringar. För att bilda en hierarki av tjänstekataloger, såsom /usr/bin, /usr/share och /usr/lib, används en speciell FUSE-modul, som kombinerar innehållet i alla installerade SquashFS-avbildningar till en helhet (till exempel / ro/share-katalogen ger tillgång till delade underkataloger från alla paket).

paket i distri i grunden levereras från hanterare som anropas under installationen (inga krokar eller triggers), och olika versioner av ett paket kan samexistera med varandra, så parallell installation av paket blir möjlig. Den föreslagna strukturen begränsar pakethanterarens prestanda endast till nätverkets genomströmning genom vilken paketen laddas ned. Själva installationen eller uppdateringen av paketet utförs atomärt och kräver inte duplicering av innehåll.

Konflikter vid installation av paket elimineras eftersom varje paket är associerat med sin egen katalog och systemet tillåter närvaron av olika versioner av ett paket (innehållet i katalogen med en senare version av paketet ingår i fackliga kataloger). Att bygga paket är också mycket snabbt och kräver inte installation av paket i en separat byggmiljö (representationer av nödvändiga beroenden från /ro-katalogen skapas i byggmiljön).

Stöds typiska pakethanteringskommandon, som "distri install" och "distri update", och istället för informationskommandon kan du använda standardverktyget "ls" (till exempel för att se installerade paket, visa bara en lista med kataloger i " /ro”-hierarkin, och för att ta reda på vilket paket filen ingår i, se vart länken från denna fil leder).

Prototypdistributionssatsen som föreslås för experimentering innehåller ca 1700 paket och redo installationsbilder med ett installationsprogram, lämpligt både för installation som huvudoperativsystem och för körning i QEMU, Docker, Google Cloud och VirtualBox. Den stöder uppstart från en krypterad diskpartition och en uppsättning standardapplikationer för att skapa ett skrivbord baserat på i3-fönsterhanteraren (Google Chrome erbjuds som webbläsare). Det tillhandahålls en komplett verktygslåda för att montera en distribution, förbereda och generera paket, distribuera paket genom speglar, etc.

Källa: opennet.ru

Lägg en kommentar