Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
19 septembre 2014 : Création de cette page.
Pour : linuxien averti.
Je me suis souvent demandé comment l'installateur de Mageia sélectionne les paquetages à installer, en fonction du matériel, en fonction du bureau choisi ...
C'est le journal de l'installation, trouvé en /root/drakx/ddebug.log, qui nous renseigne sur le processus d'installation et sur le choix des paquetages installés.
L'étude porte sur une 'net-install', à l'aide d'un CD-ROM créé à partir d'une image boot-nonfree.iso pour la version Mageia 5 (alpha2).
L'ordinateur est un modèle assez ancien, avec processeur Athlon XP (i586)
Les premières lignes du journal nous indiquent que le fichier install/stage2/VERSION est lu. C'est la version de l'installateur (ici, DrakX v16.41).
Ensuite, c'est le fichier install/patch-oem.pl qui est cherché. Il n'existe pas, ici. Ce fichier permet éventuellement de personnaliser l'installation à l'aide d'un script perl.
La troisième lecture est le fichier product.id.
Il indique : vendor=Mageia.Org,distribution=Mageia,type=Basic,version=5,branch=Devel,release=4, arch=i586,product=Default
L'installateur en déduit la variable META_CLASS=download
Plusieurs étapes se succèdent : selectLanguage, acceptLicense, selectMouse, setupSCSI, selectInstallClass, selectKeyboard, miscellaneous, doPartitionDisks, formatPartitions.
Elles correspondent aux écrans 'Sélection du langage', 'Licence', 'Installation/MiseàJour', 'Sélection du clavier', 'Partitionnement', 'Formatage des partitions' ...
L'installateur doit connaître les sources disponibles pour pouvoir y chercher les paquetages.
Vient enfin l'étape de sélection des paquetages : starting step `choosePackages'.
Cela commence par l'analyse et le contrôle des sources pour la configuration de urpmi
L'installateur va :
L'écran 'Sélection des médias' me permet d'ajouter les sources Nonfree et Tainted, faisant partie de mon miroir.
L'installateur va actualiser les médias ajoutés :
Les médias sont maintenant au complet.
L'installateur va :
urpmi est maintenant prêt à l'emploi.
Avant de continuer la procédure, il est nécessaire de voir deux fichiers qui définissent les paquetages à installer.
Ce fichier comprend différentes entrées de groupes, dont les 3 principales : N_("Workstation"), N_("Server") et N_("Graphical Environment").
Chaque groupe comprend également une ou plusieurs "sous-entrées", telles que N_("Office Workstation"), N_("Game station"), N_("Multimedia station") ...
La figure montre un extrait du fichier compssUsers.pl, avec le groupe "Graphical Environment" et quelques sous-groupes, portant les étiquettes "KDE Workstation", "GNOME Workstation", "XFCE Workstation" et "LXQT Desktop".
Remarque : c'est ce fichier compssUsers.pl qui définit la composition de la fenêtre du choix des groupes de paquetages lors de l'installation (figure ci-contre).
Dans cette fenêtre, vous choisirez les groupes et sous-groupes qui vous intéressent.
La première ligne de ce sous-groupe donne son étiquette : label => N_("KDE Workstation")
la suivante donne un bref descriptif : descr => N_("The K Desktop Environment ...")
la suivante donne une liste de drapeaux : flags => [ qw(KDE X ACCESSIBILITY THEMES) ]
la dernière ligne indique les conditions dans lesquelles ces drapeaux sont positionnés :
default_selected => !$light_desktop
les valeurs de default_selected peuvent être :
En examinant le fichier compssUsers.pl, l'installateur va énumérer les entrées de groupes|sous-groupes présentes dans le fichier. Par exemple :
"Workstation|Office Workstation", "Workstation|Game station" ...
Une configuration à base de KDE est sélectionnée par défaut.
Le processus de test continue avec les groupes et sous-groupes sélectionnés par défaut :
Dans ces groupes et sous-groupes, l'installateur va lister les drapeaux validés (flags avec default_selected).
Voici, par exemple, les drapeaux pour Poste bureautique (Workstation|Office Workstation)) :
OFFICE, SPELLCHECK, PIM, ARCHIVING, PUBLISHING
Ces différents drapeaux se retrouvent dans le fichier rpmsrate, mais préfixés par "CAT_", par exemple CAT_OFFICE, CAT_SPELLCHECK ...
Sous ces nouveaux drapeaux se trouvent les paquetages à installer et les conditions sous lesquelles ils doivent être installé.
Pour chaque drapeau sélectionné, l'installateur va utiliser ce fichier de la façon suivante, sachant que dans un premier temps il ne s'intéresse qu'aux paquetages ayant le niveau 5 :
Après avoir vu le fonctionnement du choix automatique des paquetages à l'aide des fichiers compssUsers.pl et rpmsrate, continuons l'examen du processus d'installation.
L'installateur va :
Ayant formaté la partition racine (/) dans mon test, il ne reste pas de paquetages.
Il faut vérifier que les paquetages des différentes sources permettent effectivement de faire l'installation d'un système d'exploitation.
Le test est fait en plusieurs étapes : l'installateur va déterminer quel est le noyau le plus approprié, puis sélectionner les paquetages qui en découlent, puis sélectionner les paquetages d'une distribution classique.
Ici, c'est kernel-desktop
L'installateur va :
L'installateur sélectionne ainsi 164 paquetages dans mon test. Il n'y a pas de paquetage manquant .
En dehors des vraies dépendances, Mageia a également prévu des paquetages suggérés.
L'installateur va :
Il en résulte une sélection de 92 paquetages supplémentaires dans mon test.
Le fichier rpmsrate peut référer à des paquetages inexistants dans les médias sélectionnés.
L'installateur les supprime de la liste des paquetages présents (121 paquetages dans mon test).
La suite des contrôle se fait en utilisant les fichiers de configuration de l'installation.
Les fichiers rpmsrate et compssUsers.pl définissent les paquetages à installer, se basant sur les capacités de l'ordinateur (taille mémoire, vitesse processeur) et sur son utilisation prévue.
Pour le test, l'installateur prend tous les groupes et sous-groupes de l'image ci-contre. C-à-d :
Ensuite il va lister les drapeaux validés (flags avec default_selected).
Pour chaque drapeau sélectionné, l'installateur va donc lister les paquetages ayant le niveau 5. Il y ajoute ceux qui sont demandés par le matériel (processeur ...)
Il sélectionne ensuite tous ces paquetages ainsi que leurs dépendances (dont il fait la recherche).
Le fichier ddebug.log indique que 3578 Mo sont nécessaires et donne la liste des drapeaux considérés pour le test.
Il donne ensuite la liste de tous les paquetages qui seraient sélectionnés en prenant les drapeaux précédents.
Lors de l'installation de votre Mageia, vous avez à choisir le bureau :
Au niveau du fichier ddebug.log, cela se traduit par une ligne * chosen Desktop: KDE ou * chosen Desktop: GNOME ou * chosen Desktop: Custom
Pour ces bureaux, la ligne suivante donne la liste les drapeaux correspondant au bureau choisi.
Mis à part CAT_KDE et CAT_GNOME, tous les autres drapeaux sont identiques.
Aux lignes suivantes, tous les paquetages sont désélectionnés et un nouveau processus de sélection est démarré, cette fois-ci uniquement avec les drapeaux retenus et pour un niveau 4 au lieu de 5.
Le processus de sélection se termine par une ligne débutant par
setSelectedFromCompssList: reached size 3407MB, up to indice 4 (la taille dépend du bureau et de votre matériel).
Cette ligne est suivie de la liste complète des paquetages, du rappel des drapeaux, puis de
step "choosePackages" took: x:yy:zz et step `choosePackages' finished
L'installation de ces paquetages commence alors.
Dans un premier temps, l'installateur sélectionne les paquetages correspondant aux seuls drapeaux
CAT_SYSTEM TRUE
Le processus de sélection se termine par une ligne débutant par
setSelectedFromCompssList: reached size 524MB, up to indice 4 (la taille dépend de votre matériel).
Cette ligne est suivie de la liste complète des paquetages.
Lors de l'installation d'un bureau personnalisé de Mageia, vous avez la fenêtre de sélection des groupes (il faut ouvrir les 3 listes pour avoir les détails). L'image montre le choix d'un bureau LXQt.
Les cases que vous cochez correspondent aux sous-groupes du fichier compssUsers.pl.
Au fur et à mesure que vous cochez ou décochez des groupes, l'installateur liste les drapeaux et recherche les paquetages correspondant.
Pour mon essai, j'avais choisi le Bureau LXDE et validé le choix, ce qui se traduit par :
compssUsersChoice selected: "Graphical Environment|LXDE Desktop"
Aux lignes suivantes, tous les paquetages sont désélectionnés et un nouveau processus de sélection est démarré, cette fois-ci uniquement avec les drapeaux retenus et pour un niveau 4 au lieu de 5.
Le processus de sélection se termine par une ligne débutant par
setSelectedFromCompssList: reached size 1318MB, up to indice 4 (la taille dépend du bureau et de votre matériel).
Cette ligne est suivie de la liste complète des paquetages, du rappel des drapeaux, puis de
step "choosePackages" took: x:yy:zz et step `choosePackages' finished
L'installation de ces paquetages commence alors.