Michael Stapelberg, autorul managerului de feronerie de feronerie i3wm și fost dezvoltator activ Debian (responsabil pentru aproximativ 170 de pachete), distribuție experimentală și managerul de pachete cu același nume. Proiectul se poziționează ca o cercetare a posibilelor căi de creștere a performanței sistemelor de gestionare a pachetelor și întruchipează unele idei noi în construirea distribuțiilor. Codul managerului de pachete este scris în limbajul Go și sub licența BSD.
O caracteristică cheie a formatului de pachete propus în distribuție este livrarea pachetului sub formă de imagini SquashFS, în loc de arhive tar comprimate. Utilizarea SquashFS, similar cu formatele AppImage și Snap, permite „montarea” pachetului fără a necesita dezarhivarea acestuia, economisind astfel spațiu pe disc, permițând modificări atomice și făcând conținutul pachetului disponibil instantaneu. În acest fel, pachetele distri, la fel ca în formatul clasic „deb”, conțin doar componente separate, 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ă a pachetelor din distribuțiile clasice, cum ar fi Debian, cu metodele de livrare a aplicațiilor sub formă de containere montabile.
Fiecare pachet din distri este montat în propriul său director în modul doar pentru citire (de exemplu, pachetul cu zsh este disponibil ca „/ro/zsh-amd64-5.6.2-3”), ceea ce îmbunătățește securitatea și protejează împotriva modificărilor accidentale sau rău intenționate. Pentru a forma ierarhia directoarelor de sistem, precum /usr/bin, /usr/share și /usr/lib, se utilizează un modul FUSE special, care combină conținutul tuturor imaginilor SquashFS instalate într-un întreg (de exemplu, directorul /ro/share oferă acces la subdirectoarele share din toate pachetele).
în distri sunt în mod principial de la handler-ii invocați în procesul de instalare (nu există hook-uri și trigger-e), iar diferitele versiuni ale pachetului pot coexista între ele, permițând astfel instalarea paralelă a pachetelor. Structura propusă limitează performanța managerului de pachete doar prin lățimea de bandă a rețelei prin care sunt descărcate pachetele. Instalarea sau actualizarea unui pachet are loc atomic și nu necesită duplicarea conținutului.
Conflictele la instalarea pachetelor sunt eliminate, deoarece fiecare pachet este legat de propriul său director, iar sistemul permite existența mai multor versiuni ale aceluiași pachet (în directoarele agregate se include conținutul directorului cu cea mai recentă revizie a pachetului). Compilarea pachetelor se face, de asemenea, foarte rapid și nu necesită instalarea pachetelor într-un mediu de compilare separat (în mediul de compilare se creează vederi ale dependențelor necesare din directorul /ro).
Comenzile standard pentru gestionarea pachetelor, cum ar fi „distri install” și „distri update”, iar pentru comenzile informaționale se poate folosi utilitarul standard „ls” (de exemplu, pentru a vizualiza pachetele instalate, este suficient să afișați lista directoarelor din ierarhia „/ro”, iar pentru a afla la ce pachet aparține un fișier, să verificați către ce duce linkul din acest fișier).
Prototipul de distribuție propus pentru experimente include aproximativ și gata cu un instalator, potrivite atât pentru instalarea ca sistem de operare principal, cât și pentru rularea în QEMU, Docker, Google Cloud și VirtualBox. Se suportă încărcarea dintr-o partiție de disc criptată și un set de aplicații standard pentru crearea unui mediu de lucru bazat pe managerul de feronerie i3 (ca browser este oferit Google Chrome). un instrumentar complet pentru compilarea distribuției, pregătirea și formarea pachetelor, distribuția pachetelor prin oglinzi etc.
Sursa: opennet.ro
