Les développeurs du projet openSUSE ont publié une nouvelle version de l'installeur Agama (anciennement D-Installer), développé pour remplacer l'interface classique d'installation de SUSE et openSUSE, et remarquable par la séparation de l'interface utilisateur des composants internes de YaST. Agama permet d'utiliser différents frontends, par exemple, un frontend pour gérer l'installation via une interface web. Les bibliothèques YaST continuent d'être utilisées pour l'installation de paquets, la vérification du matériel, le partitionnement des disques et d'autres fonctions nécessaires lors de l'installation, sur lesquelles des services intermédiaires sont implémentés, abstrahant l'accès aux bibliothèques via une interface unifiée D-Bus.
Pour les tests, des builds live ont été formés avec le nouvel installeur (x86_64, ARM64), prenant en charge l'installation de la version constamment mise à jour d'openSUSE Tumbleweed, ainsi que des éditions openSUSE Leap Micro, SUSE ALP et openSUSE Leap 16, construites sur la base de conteneurs isolés.


L'interface de base pour gérer l'installation est construite en utilisant des technologies web et comprend un gestionnaire qui permet d'accéder aux appels D-Bus via HTTP, ainsi qu'une interface web directe. L'interface web est écrite en JavaScript en utilisant le framework React et des composants PatternFly. Le service pour lier l'interface à D-Bus, ainsi que le serveur http intégré, sont écrits en Ruby et construits à l'aide de modules existants développés par le projet Cockpit, qui sont également utilisés dans les web-configurateurs de Red Hat. L'installateur utilise une architecture multiprocessus, grâce à laquelle l'interface utilisateur n'est pas bloquée pendant l'exécution d'autres tâches.

À l'étape actuelle de développement, l'installeur propose des services responsables de la gestion du processus d'installation, de la configuration du contenu du produit et de la liste des programmes installés, de la configuration de la langue, du clavier et des paramètres de localisation, de la préparation de l'appareil de stockage et du partitionnement, de l'affichage des conseils et informations d'assistance, de l'ajout d'utilisateurs au système et du réglage de la connexion réseau.
Parmi les objectifs du développement d'Agama, on mentionne l'élimination des limitations existantes de l'interface graphique, l'élargissement des possibilités d'utilisation de la fonctionnalité YaST dans d'autres applications, l'éloignement d'un seul langage de programmation (l'API D-Bus permettra de créer des extensions dans différents langages) et la stimulation de la création d'options alternatives par les membres de la communauté.
L'interface d'Agama a été conçue pour être aussi simple que possible pour l'utilisateur, notamment en supprimant la possibilité d'installation sélective des paquets. Actuellement, les développeurs discutent des options possibles pour une interface plus simple pour choisir les programmes à installer (une approche principale envisagée est un prototype de séparation des catégories basé sur des modèles d'utilisation typiques, par exemple, des environnements graphiques, des outils pour conteneurs, des outils pour développeurs, etc.).
Source : opennet.ru
