Distri - 'n verspreiding vir die toets van vinnige pakketbestuurtegnologieë

Michael Stapelberg, skrywer van die i3wm-vensterbestuurder en voormalige aktiewe Debian-ontwikkelaar (het ongeveer 170 pakkette onderhou), ontwikkel eksperimentele verspreiding versprei en 'n pakketbestuurder met dieselfde naam. Die projek is geposisioneer as 'n verkenning van moontlike maniere om die werkverrigting van pakketbestuurstelsels te verhoog en bevat 'n paar nuwe idees vir die bou van verspreidings. Die pakketbestuurderkode is geskryf in Gaan en versprei deur onder die BSD-lisensie.

’n Sleutelkenmerk van die verspreiding se pakketformaat is dat die pakket in die vorm van SquashFS-beelde afgelewer word, in plaas van saamgeperste teer-argiewe. Die gebruik van SquashFS, soortgelyk aan die AppImage- en Snap-formate, laat jou toe om 'n pakket te "monteer" sonder om dit uit te pak, wat skyfspasie bespaar, atoomveranderinge moontlik maak en die inhoud van die pakket onmiddellik toeganklik maak. Terselfdertyd bevat distri-pakkette, soos in die klassieke "deb"-formaat, slegs individuele komponente wat deur afhanklikhede met ander pakkette gekoppel is (biblioteke word nie in pakkette gedupliseer nie, maar word as afhanklikhede geïnstalleer). Met ander woorde, distri probeer om die korrelpakketstruktuur van klassieke verspreidings soos Debian te kombineer met die metodes om toepassings in die vorm van gemonteerde houers af te lewer.

Elke pakket in distri word in sy eie gids gemonteer in leesalleen-modus (byvoorbeeld, die pakket met zsh is beskikbaar as "/ro/zsh-amd64-5.6.2-3"), wat 'n positiewe uitwerking op sekuriteit en beskerm teen toevallige of kwaadwillige veranderinge. Om 'n hiërargie van diensgidse te vorm, soos /usr/bin, /usr/share en /usr/lib, word 'n spesiale FUSE-module gebruik, wat die inhoud van alle geïnstalleerde SquashFS-beelde in een geheel kombineer (byvoorbeeld die / ro/share-gids bied toegang tot deel-subgidse vanaf alle pakkette).

pakkette in distri fundamenteel afgelewer van hanteerders wat tydens installasie genoem word (geen hake of snellers nie), en verskillende weergawes van 'n pakket kan saam met mekaar bestaan, so parallelle installering van pakkette word moontlik. Die voorgestelde struktuur beperk die prestasie van die pakketbestuurder slegs tot die netwerkdeurset waardeur die pakkette afgelaai word. Die werklike installering of opdatering van die pakket word atomies uitgevoer en vereis nie duplisering van inhoud nie.

Konflikte tydens die installering van pakkette word uitgeskakel aangesien elke pakket met sy eie gids geassosieer word en die stelsel die teenwoordigheid van verskillende weergawes van een pakket toelaat (die inhoud van die gids met 'n meer onlangse hersiening van die pakket is ingesluit in die vakbondgidse). Die bou van pakkette is ook baie vinnig en vereis nie die installering van pakkette in 'n aparte bou-omgewing nie (voorstellings van die nodige afhanklikhede van die /ro-gids word in die bou-omgewing geskep).

Ondersteun tipiese pakketbestuuropdragte, soos "distri install" en "distri update", en in plaas van inligtingopdragte, kan jy die standaard "ls"-nutsding gebruik (byvoorbeeld, om geïnstalleerde pakkette te sien, vertoon net 'n lys van gidse in die " /ro”-hiërargie, en om uit te vind in watter pakket die lêer ingesluit is, kyk waarheen die skakel van hierdie lêer lei).

Die prototipe verspreidingskit wat vir eksperimentering voorgestel word, bevat ongeveer 1700 sakke en gereed installasie beelde met 'n installeerder, geskik vir installasie as die hoofbedryfstelsel en om in QEMU, Docker, Google Cloud en VirtualBox te hardloop. Dit ondersteun selflaai vanaf 'n geënkripteerde skyfpartisie en 'n stel standaardtoepassings vir die skep van 'n lessenaar gebaseer op die i3-vensterbestuurder (Google Chrome word as 'n blaaier aangebied). Verskaf 'n volledige gereedskapstel vir die samestelling van 'n verspreiding, voorbereiding en generering van pakkette, verspreiding van pakkette deur spieëls, ens.

Bron: opennet.ru

Voeg 'n opmerking