Distri - izplatīšana ātrai pakotņu pārvaldības tehnoloģiju testēšanai

Maikls Stapelbergs, i3wm flīžu logu pārvaldnieka autors un bijušais aktīvais Debian izstrādātājs (uzturēja aptuveni 170 pakotnes), attīstās eksperimentālā izplatīšana distri un tāda paša nosaukuma pakotņu pārvaldnieku. Projekts ir pozicionēts kā iespējamo veidu izpēte, kā palielināt pakotņu pārvaldības sistēmu veiktspēju, un iemieso dažas jaunas idejas izplatīšanas veidošanai. Pakešu pārvaldnieka kods ir rakstīts Go un izplata saskaņā ar BSD licenci.

Galvenā izplatīšanas pakotnes formāta iezīme ir tā, ka pakotne tiek piegādāta SquashFS attēlu veidā, nevis saspiestu darvas arhīvu veidā. Izmantojot SquashFS, līdzīgi kā AppImage un Snap formātiem, varat “uzmontēt” pakotni, to neizpakojot, tādējādi ietaupot vietu diskā, ļaujot veikt atomu izmaiņas un padarīt pakotnes saturu uzreiz pieejamu. Tajā pašā laikā distri pakotnes, tāpat kā klasiskajā “deb” formātā, satur tikai atsevišķus komponentus, kas saistīti ar atkarībām ar citām pakotnēm (bibliotēkas netiek dublētas pakotnēs, bet tiek instalētas kā atkarības). Citiem vārdiem sakot, distri mēģina apvienot klasisko izplatījumu, piemēram, Debian, granulēto pakotņu struktūru ar lietojumprogrammu piegādes metodēm uzstādītu konteineru veidā.

Katra pakotne distri ir ievietota savā direktorijā tikai lasīšanas režīmā (piemēram, zsh pakotne ir pieejama kā "/ro/zsh-amd64-5.6.2-3"), kas pozitīvi ietekmē drošību un aizsargā. pret nejaušām vai ļaunprātīgām izmaiņām. Lai izveidotu pakalpojumu direktoriju hierarhiju, piemēram, /usr/bin, /usr/share un /usr/lib, tiek izmantots īpašs FUSE modulis, kas apvieno visu instalēto SquashFS attēlu saturu vienā veselumā (piemēram, / ro/share direktorijs nodrošina piekļuvi koplietošanas apakšdirektorijiem no visām pakotnēm).

Iepakojumi in distri fundamentāli piegādāts no apdarinātājiem, kas tiek izsaukti instalēšanas laikā (nav āķu vai trigeru), un dažādas pakotnes versijas var pastāvēt viena ar otru, tādējādi kļūst iespējama paralēla pakotņu instalēšana. Piedāvātā struktūra ierobežo pakotņu pārvaldnieka veiktspēju tikai ar tīkla caurlaidspēju, caur kuru pakotnes tiek lejupielādētas. Pakotnes faktiskā instalēšana vai atjaunināšana tiek veikta atomiski, un tai nav nepieciešama satura dublēšana.

Konflikti pakotņu instalēšanas laikā tiek novērsti, jo katra pakotne ir saistīta ar savu direktoriju un sistēma pieļauj vienas pakotnes dažādu versiju klātbūtni (direktorija saturs ar jaunāku pakotnes versiju ir iekļauts savienības direktorijos). Arī pakotņu izveide ir ļoti ātra un nav nepieciešama pakotņu instalēšana atsevišķā būvēšanas vidē (veidošanas vidē tiek izveidotas nepieciešamo atkarību attēlojums no /ro direktorija).

Atbalstīts tipiskas pakotņu pārvaldības komandas, piemēram, “distri install” un “distri update”, un informācijas komandu vietā varat izmantot standarta “ls” utilītu (piemēram, lai skatītu instalētās pakotnes, vienkārši parādiet direktoriju sarakstu “ /ro” hierarhiju, un, lai uzzinātu, kurā pakotnē fails ir iekļauts, skatiet, kur ved šī faila saite).

Eksperimentēšanai piedāvātais prototipa izplatīšanas komplekts ietver apm 1700 iepakojumi un gatavs instalācijas attēli ar instalētāju, piemērots gan instalēšanai kā galvenā OS, gan darbam QEMU, Docker, Google Cloud un VirtualBox. Tā atbalsta sāknēšanu no šifrēta diska nodalījuma un standarta lietojumprogrammu kopu, lai izveidotu darbvirsmu, pamatojoties uz i3 logu pārvaldnieku (kā pārlūkprogramma tiek piedāvāts Google Chrome). Ar nosacījumu pilnīgs rīku komplekts izplatīšanas komplektēšanai, pakešu sagatavošanai un ģenerēšanai, paku izplatīšanai caur spoguļiem utt.

Avots: opennet.ru

Pievieno komentāru