Distri - o distribuție pentru testarea tehnologiilor rapide de gestionare a pachetelor

Michael Stapelberg, autorul i3wm tiled window manager și fost dezvoltator Debian activ (a întreținut aproximativ 170 de pachete), dezvoltă distribuţie experimentală distri și un manager de pachete cu același nume. Proiectul este poziționat ca o explorare a posibilelor modalități de creștere a performanței sistemelor de management al pachetelor și întruchipează câteva idei noi pentru construirea distribuțiilor. Codul managerului de pachete este scris în Go și distribuit de sub licența BSD.

O caracteristică cheie a formatului de pachet al distribuției este că pachetul este livrat sub formă de imagini SquashFS, în loc de arhive tar comprimate. Utilizarea SquashFS, similar cu formatele AppImage și Snap, vă permite să „montați” un pachet fără a fi nevoie să-l despachetați, ceea ce economisește spațiu pe disc, permite modificări atomice și face conținutul pachetului accesibil instantaneu. În același timp, pachetele distri, ca în formatul clasic „deb”, conțin doar componente individuale legate prin dependențe cu alte pachete (bibliotecile nu sunt duplicate în pachete, ci sunt instalate ca dependențe). Cu alte cuvinte, distri încearcă să combine structura granulară de pachete a distribuțiilor clasice precum Debian cu metodele de livrare a aplicațiilor sub formă de containere montate.

Fiecare pachet din distri este montat în propriul director în modul doar citire (de exemplu, pachetul zsh este disponibil ca „/ro/zsh-amd64-5.6.2-3”), ceea ce are un efect pozitiv asupra securității și protejează împotriva modificărilor accidentale sau rău intenționate. Pentru a forma o ierarhie de directoare de servicii, cum ar fi /usr/bin, /usr/share și /usr/lib, se folosește un modul special FUSE, care combină conținutul tuturor imaginilor SquashFS instalate într-un singur întreg (de exemplu, / directorul ro/share oferă acces la subdirectoare de partajare din toate pachetele).

pachete in distri fundamental livrat de la handlere apelați în timpul instalării (fără cârlige sau declanșatoare), și diferite versiuni ale unui pachet pot coexista între ele, astfel încât instalarea paralelă a pachetelor devine posibilă. Structura propusă limitează performanța managerului de pachete doar la debitul rețelei prin care sunt descărcate pachetele. Instalarea sau actualizarea efectivă a pachetului se realizează atomic și nu necesită duplicarea conținutului.

Conflictele la instalarea pachetelor sunt eliminate deoarece fiecare pachet este asociat cu propriul director și sistemul permite prezența diferitelor versiuni ale unui pachet (conținutul directorului cu o revizuire mai recentă a pachetului este inclus în directoarele uniunii). Construirea pachetelor este, de asemenea, foarte rapidă și nu necesită instalarea pachetelor într-un mediu de construcție separat (reprezentările dependențelor necesare din directorul /ro sunt create în mediul de compilare).

Sprijinit comenzi tipice de gestionare a pachetelor, cum ar fi „distri install” și „distri update”, iar în loc de comenzi de informații, puteți utiliza utilitarul standard „ls” (de exemplu, pentru a vizualiza pachetele instalate, trebuie doar să afișați o listă de directoare în „ /ro”, iar pentru a afla în ce pachet este inclus fișierul, vezi unde duce linkul din acest fișier).

Kit-ul de distribuție prototip propus pentru experimentare include aproximativ 1700 pachete si gata imagini de instalare cu un program de instalare, potrivit atât pentru instalare ca sistem de operare principal, cât și pentru rularea în QEMU, Docker, Google Cloud și VirtualBox. Acceptă pornirea de pe o partiție de disc criptată și un set de aplicații standard pentru crearea unui desktop bazat pe managerul de ferestre i3 (Google Chrome este oferit ca browser). Furnizat un set complet de instrumente pentru asamblarea unei distribuții, pregătirea și generarea pachetelor, distribuirea pachetelor prin oglinzi etc.

Sursa: opennet.ru

Adauga un comentariu