Distri - një shpërndarje për testimin e teknologjive të shpejta të menaxhimit të paketave

Michael Stapelberg, autor i menaxherit të dritareve me pllaka i3wm dhe ish zhvillues aktiv i Debian (mbajtur rreth 170 paketa), zhvillon shpërndarja eksperimentale distri dhe një menaxher paketash me të njëjtin emër. Projekti pozicionohet si një eksplorim i mënyrave të mundshme për të rritur performancën e sistemeve të menaxhimit të paketave dhe mishëron disa ide të reja për ndërtimin e shpërndarjeve. Kodi i menaxherit të paketave është shkruar në Shko dhe shperndare nga nën licencën BSD.

Një tipar kryesor i formatit të paketës së shpërndarjes është se paketa shpërndahet në formën e imazheve SquashFS, në vend të arkivave të ngjeshur të tar. Përdorimi i SquashFS, i ngjashëm me formatet AppImage dhe Snap, ju lejon të "montoni" një paketë pa pasur nevojë ta shpaketoni, gjë që kursen hapësirën në disk, lejon ndryshime atomike dhe e bën përmbajtjen e paketës të aksesueshme menjëherë. Në të njëjtën kohë, paketat e shpërndarjes, si në formatin klasik “deb”, përmbajnë vetëm komponentë individualë të lidhur me varësi me paketa të tjera (bibliotekat nuk dublikohen në paketa, por instalohen si varësi). Me fjalë të tjera, distri përpiqet të kombinojë strukturën e paketave granulare të shpërndarjeve klasike si Debian me metodat e dërgimit të aplikacioneve në formën e kontejnerëve të montuar.

Çdo paketë në distri është montuar në drejtorinë e vet në modalitetin vetëm për lexim (për shembull, paketa me zsh disponohet si “/ro/zsh-amd64-5.6.2-3”), e cila ka një efekt pozitiv në sigurinë dhe mbron nga ndryshimet aksidentale ose me qëllim të keq. Për të formuar një hierarki të drejtorive të shërbimeve, të tilla si /usr/bin, /usr/share dhe /usr/lib, përdoret një modul special FUSE, i cili kombinon përmbajtjen e të gjitha imazheve të instaluara SquashFS në një tërësi (për shembull, / direktoria ro/share ofron akses në ndarjen e nëndirektorive nga të gjitha paketat).

Paketat në distri në thelb dorëzuar nga mbajtësit e thirrur gjatë instalimit (pa grepa ose shkas), dhe versione të ndryshme të një pakete mund të bashkëjetojnë me njëri-tjetrin, kështu që instalimi paralel i paketave bëhet i mundur. Struktura e propozuar kufizon performancën e menaxherit të paketave vetëm në xhiron e rrjetit përmes të cilit shkarkohen paketat. Instalimi ose përditësimi aktual i paketës kryhet në mënyrë atomike dhe nuk kërkon dyfishim të përmbajtjes.

Konfliktet gjatë instalimit të paketave eliminohen pasi secila paketë është e lidhur me drejtorinë e vet dhe sistemi lejon praninë e versioneve të ndryshme të një pakete (përmbajtja e drejtorisë me një rishikim më të fundit të paketës përfshihet në drejtoritë e bashkimit). Ndërtimi i paketave është gjithashtu shumë i shpejtë dhe nuk kërkon instalimin e paketave në një mjedis të veçantë ndërtimi (në mjedisin e ndërtimit krijohen përfaqësimet e varësive të nevojshme nga drejtoria /ro).

Mbështetur komandat tipike të menaxhimit të paketave, të tilla si "distri install" dhe "distri update", dhe në vend të komandave të informacionit, mund të përdorni mjetin standard "ls" (për shembull, për të parë paketat e instaluara, thjesht shfaqni një listë të drejtorive në " hierarkia /ro” dhe për të zbuluar se në cilën paketë është përfshirë skedari, shikoni se ku të çon lidhja nga ky skedar).

Kompleti i shpërndarjes së prototipit të propozuar për eksperimentim përfshin rreth 1700 pako dhe gati imazhet e instalimit me një instalues, i përshtatshëm si për instalim si OS kryesor ashtu edhe për ekzekutim në QEMU, Docker, Google Cloud dhe VirtualBox. Ai mbështet nisjen nga një ndarje e enkriptuar e diskut dhe një grup aplikacionesh standarde për krijimin e një desktopi bazuar në menaxherin e dritareve i3 (Google Chrome ofrohet si shfletues). Me kusht një paketë e plotë mjetesh për montimin e një shpërndarjeje, përgatitjen dhe gjenerimin e paketave, shpërndarjen e paketave përmes pasqyrave, etj.

Burimi: opennet.ru

Shto një koment