Distri — distributionssystem til eksperimentel pakkehåndtering

Michael Stapelberg, skaberen af det mosaik-vindueshåndteringssystem i3wm og tidligere aktiv udvikler af Debian (har vedligeholdt omkring 170 pakker), udvikler et eksperimentelt distributionssystem distri og den navngivne pakkehåndterer. Projektet præsenteres som en undersøgelse af mulige metoder til at øge ydeevnen i pakkehåndteringssystemer og inkorporerer nogle nye idéer til opbygning af distributioner. Koden til pakkehåndtereren er skrevet i Go og distribueres under BSD-licensen.

En nøglefunktion i det præsenterede distributionssystem er leveringen af pakker i form af SquashFS-billeder, i stedet for komprimerede tar-arkiver. Anvendelsen af SquashFS, parallelt med AppImage- og Snap-formaterne, muliggør "montering" af en pakke uden at skulle udføre en udpakkning, hvilket sparer diskplads, tillader atomiske ændringer og gør indholdet af pakken øjeblikkeligt tilgængeligt. Derudover indeholder distri-pakker, ligesom i det klassiske "deb"-format, kun individuelle komponenter, der er knyttet til andre pakker som afhængigheder (biblioteker duplikeres ikke i pakkerne, men installeres som afhængigheder). Med andre ord forsøger distri at kombinere en granular pakke-struktur fra klassiske distributioner som Debian med metoder til levering af applikationer i form af monterbare containere.

Hver pakke i distri monteres i sin egen bibliotek i skrivebeskyttet tilstand (for eksempel er pakken med zsh tilgængelig som "/ro/zsh-amd64-5.6.2-3"), hvilket positivt påvirker sikkerheden og beskytter mod utilsigtede eller ondsindede ændringer. For at danne hierarkiet af systembiblioteker som "/usr/bin", "/usr/share" og "/usr/lib" anvendes der en speciel FUSE-modul, der sammenfatter indholdet af alle installerede SquashFS-billeder til én enhed (for eksempel giver biblioteket "/ro/share" adgang til undermapperne fra alle pakker).

Pakker i distri er i princippet afskaffet fra de håndterere, der kaldes under installationen (ingen hooks eller triggers), og forskellige versioner af pakken kan sameksistere med hinanden, hvilket muliggør parallel installation af pakker. Den foreslåede struktur begrænser pakkehåndtererens ydeevne kun til båndbredden af det netværk, som pakkerne downloades gennem. Selve installationen eller opdateringen af en pakke udføres atomisk og kræver ikke duplicering af indholdet.

Konflikter ved installation af pakker udelukkes, da hver pakke er bundet til sit eget bibliotek, og systemet tillader, at forskellige versioner af den samme pakke eksisterer (indholdet fra biblioteket med den nyeste revision inkluderet i de sammenfattede biblioteker). Pakkesamling udføres også meget hurtigt og kræver ikke installation af pakker i et separat samlingsmiljø (i samlingsmiljøet oprettes repræsentationer af nødvendige afhængigheder fra biblioteket /ro).

Understøttes standard pakkehåndteringskommandoer som «distri install» og «distri update», og i stedet for informationskommandoer kan man anvende det indeholdte værktøj «ls» (for eksempel, for at se installerede pakker kan man blot vise listen over biblioteker i hierarkiet «/ro», og for at finde ud af hvilken pakke en fil tilhører, kan man se, hvor linket fra denne fil fører hen).

Prototypen af distributionen, der er foreslået til eksperimenter, inkluderer omkring 1700 pakker og færdige installationsbilleder med en installer, der er velegnet både til installation som primært OS og til kørsel i QEMU, Docker, Google Cloud og VirtualBox. Der understøttes opstart fra en krypteret diskpartition og et sæt standardapplikationer til oprettelse af skrivebordet baseret på vinduesmanager i3 (Google Chrome anbefales som browser). Der tilbydes et omfattende værktøj til at samle distributionen, forberede og danne pakker, distribuere pakker til spejle osv.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster