Die Entwickler des Projekts openSUSE haben die Veröffentlichung des Installers Agama 10 bekannt gegeben, der als Ersatz fĂŒr die klassische InstallationsoberflĂ€che von SUSE und openSUSE entwickelt wurde. Er zeichnet sich durch die Trennung der BenutzeroberflĂ€che von den internen Komponenten von YaST aus. Agama ermöglicht die Nutzung verschiedener Frontends, darunter eine webbasierte BenutzeroberflĂ€che zur Verwaltung der Installation. FĂŒr die Tests des neuen Installers wurden Live-Images fĂŒr die Architekturen x86_64, ppc64le, s390x und ARM64 erstellt, die die Installation der Alpha-Version von openSUSE Leap 16, der kontinuierlich aktualisierten Version openSUSE Tumbleweed und der MicroOS-Container-Edition unterstĂŒtzen. Der Code der Komponenten des Installers wird unter der GPLv2-Lizenz vertrieben und ist in Ruby, Rust sowie JavaScript/TypeScript geschrieben.

Die Hauptziele der Entwicklung von Agama bestehen darin, bestehende EinschrĂ€nkungen der grafischen BenutzeroberflĂ€che zu beseitigen, die Nutzung der YahST-FunktionalitĂ€ten in anderen Anwendungen zu erweitern, die Bindung an eine Programmiersprache aufzugeben und die Erstellung alternativer Einstellungen durch die Community zu fördern. Der Installer bietet Funktionen wie die Auswahl eines anfĂ€nglichen Anwendungspakets, die Konfiguration der Netzwerkverbindung, der Sprache, der Tastatur, der Zeitzone und der Lokalisierungsoptionen, die Vorbereitung des Speichermediums und die Partitionierung sowie das HinzufĂŒgen von Benutzern zum System.
Zur Installation von Paketen, zur ĂberprĂŒfung der Hardware, zur Partitionierung von Festplatten und fĂŒr andere notwendige Funktionen wĂ€hrend der Installation werden weiterhin die YaST-Bibliotheken verwendet. Darauf aufbauend sind Middleware-Services implementiert, die den Zugriff auf die Bibliotheken ĂŒber ein einheitliches Kommunikationsprotokoll auf Basis von HTTP abstrahieren. Der Installer nutzt eine Multi-Prozess-Architektur, dank derer die BenutzeroberflĂ€che wĂ€hrend der AusfĂŒhrung anderer Aufgaben nicht blockiert wird. Die grundlegende BenutzeroberflĂ€che zur Verwaltung der Installation ist mit Web-Technologien aufgebaut. Das Web-Interface ist in JavaScript unter Verwendung des React-Frameworks und von PatternFly-Komponenten geschrieben. Ein NachrichtenĂŒbermittlungsdienst sowie ein eingebauter HTTP-Server sind in Ruby implementiert.
In der neuen Version:
- Die Möglichkeit zur Generierung eines QR-Codes wurde hinzugefĂŒgt, der einen Link zum Ăffnen des Web-Interfaces des Installers im Browser enthĂ€lt, was die Verbindung zum Installer ĂŒber ein Smartphone erleichtert.

- Syntax-Highlighting-Komponenten wurden hinzugefĂŒgt, die beim Bearbeiten der Konfigurationsdatei im JSON-Format mit dem Befehl âagama config editâ verwendet werden. StandardmĂ€Ăig wird Vim aufgerufen (ĂŒber die Umgebungsvariable EDITOR kann ein anderer Editor angegeben werden).

- Im automatischen Installationsmodus wurde die Möglichkeit zur Erstellung von LVM-Partitionen, LVM-logischen Volumes sowie Pools und LVM-Partitionen mit dynamischer Speicherzuweisung (thin provisioning) implementiert. Die Verwendung bereits existierender logischer Volumes und Partitionsgruppen wird derzeit nicht unterstĂŒtzt. Es wurden zwei Modi fĂŒr die automatische Löschung von Partitionen hinzugefĂŒgt â bedingungslose Löschung und Löschung nur bei Bedarf (wenn nicht genug Speicher fĂŒr die Erstellung der angegebenen Partitionen vorhanden ist).
- Der Bootparameter âagama.install_urlâ wurde hinzugefĂŒgt, ĂŒber den eine URL fĂŒr das Repository zur Installation von Paketen angegeben werden kann, die von dem in der Konfiguration angegebenen Repository abweicht.
- Es wurde die Möglichkeit geschaffen, Komponenten der Web-OberflĂ€che des Installers in Typescript zu entwickeln. In Zukunft beabsichtigen die Entwickler, den Code schrittweise nach Bedarf von JavaScript auf Typescript zu ĂŒbertragen.
- Im Web-Interface zur Verwaltung des Status im asynchronen Modus wird das Framework TanStack Query verwendet.
- Der Speicherplatz, der fĂŒr die Installation zusĂ€tzlicher Pakete nach dem Booten im Live-Modus verfĂŒgbar ist, wurde von 500 MB auf 3,5 GB erhöht.
- FĂŒr automatisierte Tests des Web-Interfaces wird anstelle des Systems Playwright die JavaScript-Bibliothek Puppeteer eingesetzt.
- Die Installer-Steuerelemente, die ĂŒber die Befehlszeile gestartet werden, wurden von DBus auf die Verwendung eines HTTP-Clients umgestellt, der auf den im Installer integrierten HTTP-Server zugreift.
Quelle: opennet.ru


