Distri - en distribution til test af hurtige pakkehåndteringsteknologier

Michael Stapelberg, forfatter til i3wm tiled window manager og tidligere aktiv Debian-udvikler (vedligeholdt omkring 170 pakker), udvikler eksperimentel fordeling distri og en pakkeadministrator af samme navn. Projektet er placeret som en udforskning af mulige måder at øge ydeevnen af ​​pakkehåndteringssystemer og inkarnerer nogle nye ideer til at bygge distributioner. Pakkehåndteringskoden er skrevet i Go og distribueret af under BSD-licensen.

Et centralt træk ved distributionens pakkeformat er, at pakken leveres i form af SquashFS-billeder i stedet for komprimerede tar-arkiver. Brug af SquashFS, svarende til AppImage- og Snap-formaterne, giver dig mulighed for at "montere" en pakke uden at skulle pakke den ud, hvilket sparer diskplads, tillader atomære ændringer og gør indholdet af pakken øjeblikkeligt tilgængeligt. Samtidig indeholder distri-pakker, som i det klassiske "deb"-format, kun individuelle komponenter, der er forbundet af afhængigheder med andre pakker (biblioteker duplikeres ikke i pakker, men installeres som afhængigheder). Med andre ord, distributører forsøger at kombinere den granulære pakkestruktur af klassiske distributioner som Debian med metoderne til at levere applikationer i form af monterede containere.

Hver pakke i distri er monteret i sin egen mappe i skrivebeskyttet tilstand (for eksempel er pakken med zsh tilgængelig som "/ro/zsh-amd64-5.6.2-3"), hvilket har en positiv effekt på sikkerheden og beskytter mod utilsigtede eller ondsindede ændringer. For at danne et hierarki af servicemapper, såsom /usr/bin, /usr/share og /usr/lib, bruges et særligt FUSE-modul, som kombinerer indholdet af alle installerede SquashFS-billeder til én helhed (f.eks. / ro/share bibliotek giver adgang til dele undermapper fra alle pakker).

pakker i distri grundlæggende leveret fra handlere kaldet under installationen (ingen kroge eller triggere), og forskellige versioner af en pakke kan eksistere side om side med hinanden, så parallel installation af pakker bliver mulig. Den foreslåede struktur begrænser kun pakkehåndteringens ydeevne til den netværksgennemstrømning, hvorigennem pakkerne downloades. Selve installationen eller opdateringen af ​​pakken udføres atomisk og kræver ikke duplikering af indhold.

Konflikter ved installation af pakker elimineres, da hver pakke er knyttet til sin egen mappe, og systemet tillader tilstedeværelsen af ​​forskellige versioner af en pakke (indholdet af biblioteket med en nyere revision af pakken er inkluderet i fagforeningskatalogerne). Opbygning af pakker er også meget hurtig og kræver ikke installation af pakker i et separat byggemiljø (repræsentationer af de nødvendige afhængigheder fra /ro-mappen oprettes i byggemiljøet).

Understøttet typiske pakkehåndteringskommandoer, såsom "distri install" og "distri update", og i stedet for informationskommandoer kan du bruge standardværktøjet "ls" (for eksempel for at se installerede pakker, skal du blot vise en liste over mapper i " /ro”-hierarkiet, og for at finde ud af hvilken pakke filen er inkluderet i, se hvor linket fra denne fil fører hen).

Prototypedistributionssættet foreslået til eksperimentering omfatter ca 1700 poser og klar installationsbilleder med et installationsprogram, der både er egnet til installation som det primære OS og til at køre i QEMU, Docker, Google Cloud og VirtualBox. Det understøtter opstart fra en krypteret diskpartition og et sæt standardapplikationer til at skabe et skrivebord baseret på i3-vinduestyringen (Google Chrome tilbydes som en browser). Stillet til rådighed et komplet værktøjssæt til at samle en distribution, klargøre og generere pakker, distribuere pakker gennem spejle mv.

Kilde: opennet.ru

Tilføj en kommentar