Dezvoltatorii proiectului openSUSE au publicat versiunea instalatorului Agama 10, care este dezvoltat pentru a înlocui interfața clasică de instalare SUSE și openSUSE, remarcabil prin separarea interfeței utilizatorului de componentele interne YaST. Agama oferă posibilitatea utilizării diferitelor frontend-uri, de exemplu, un frontend pentru gestionarea instalării prin intermediul unei interfețe web. Pentru testarea noului instalator, au fost create imagini live pentru arhitecturile x86_64, ppc64le, s390x și ARM64, care suportă instalarea versiunii alfa a openSUSE Leap 16, a versiunii continua openSUSE Tumbleweed și a variantei MicroOS bazate pe containere. Codul componentelor instalatorului este distribuit sub licența GPLv2 și este scris în limbaje precum Ruby, Rust și JavaScript/TypeScript.

Principalele obiective ale dezvoltării Agama sunt eliminarea limitărilor existente ale interfeței grafice, extinderea funcționalității YaST în alte aplicații, abandonarea legăturii cu un singur limbaj de programare și stimularea creării de alternative de către membrii comunității. Instalatorul conține funcții precum alegerea unui set inițial de aplicații, configurarea conexiunii rețelei, limbii, tastaturii, fusului orar și opțiunilor de localizare, pregătirea dispozitivelor de stocare și partiționarea, adăugarea utilizatorilor în sistem.
Pentru instalarea pachetelor, verificarea hardware-ului, partiționarea discurilor și alte funcții necesare în timpul instalării, Agama continuă să folosească bibliotecile YaST, deasupra căror servicii de interfață sunt implementate, care abstractizează accesul la biblioteci printr-un protocol de comunicație unificat bazat pe HTTP. Instalatorul folosește o arhitectură multiproces, ceea ce permite ca interfața de interacțiune cu utilizatorul să nu fie blocată în timpul efectuării altor lucrări. Interfața de bază pentru gestionarea instalării este construită folosind tehnologii web. Interfața web este scrisă în JavaScript folosind cadrul React și componentele PatternFly. Serviciul de mesagerie, precum și serverul http încorporat, sunt scrise în Ruby.
În noua versiune:
- A fost adăugată posibilitatea de generare a unui cod QR, care conține un link pentru deschiderea interfeței web a instalatorului în browser, facilitând astfel conectarea la instalator dintr-un smartphone.

- Au fost adăugate componente pentru evidențierea sintaxei, folosite la editarea fișierului de configurare în format JSON prin comanda „agama config edit”. În mod default, se deschide Vim (se poate specifica orice alt editor prin intermediul variabilei de mediu EDITOR).

- În modul de instalare automată a fost implementată posibilitatea de a crea grupuri de partiții LVM, partiții logice LVM, precum și pool-uri și partiții LVM cu alocare dinamică de spațiu în stocare (thin provisioning). Utilizarea partițiilor logice și grupurilor de partiții existente nu este deocamdată suportată. Au fost adăugate două moduri de ștergere automată a partițiilor — ștergere necondiționată și ștergere doar în caz de necesitate (când nu este suficient spațiu pentru a crea partițiile specificate).
- A fost adăugat parametrul de boot „agama.install_url”, prin care se poate specifica URL-ul depozitului pentru instalarea pachetelor, diferit de depozitul specificat în configurație.
- A fost oferită posibilitatea dezvoltării componentelor interfeței web a instalatorului în limbajul Typescript. În continuare, dezvoltatorii intenționează să traducă treptat codul din JavaScript în Typescript, pe măsură ce va fi necesar.
- În interfața web pentru gestionarea stării în mod asincron este utilizat framework-ul TanStack Query.
- Dimensiunea stocării disponibile pentru instalarea pachetelor suplimentare după descărcarea în modul Live a fost extinsă de la 500 MB la 3.5 GB.
- Pentru testarea automatizată a interfeței web, în locul sistemului Playwright, este folosită biblioteca JavaScript Puppeteer.
- Componentele de control ale instalatorului, lansate din linia de comandă, au fost migrate de la DBus la utilizarea unui client HTTP care comunică cu serverul HTTP încorporat în instalator.
Sursa: opennet.ro


