Comment l'installateur sélectionne les paquetages

Mises à jour

18-22 sept 09 : essai de clarification de certains paragraphes et mise à jour pour 20010.0
29 sept-2 oct 09 : installations personnalisées

Sélection des paquetages par l'installateur Mandriva (2008.1 Powerpack)

Pour comprendre le processus d'installation de la Mandriva, et le choix automatique des paquetages installés, vous pouvez étudier le journal de l'installation : /root/drakx/ddebug.log.

Premières données

Vous trouverez ainsi que, dans les premières lignes du journal, le fichier cdrom://i586/product.id est lu.
Ce fichier indique : vendor=Mandriva,distribution=Mandriva Linux,type=Basic,version=2008.1,branch=devel,release=1,arch=i586,product=Powerpack
L'installateur en déduit la variable META_CLASS=powerpack

Recherche des paquetages installables

Plus loin, dans l'étape choosePackages,

La liste des paquetages "installables" est maintenant prête.

Haut

Première approche du choix des paquetages

En bref

Dans cette première approche, l'installateur recherche les paquetages pour tous les bureaux possibles (KDE, Gnome ...). Il ne pend en compte que les paquetages les plus importants.

En détail

L'installateur va dresser une liste des paquetages qu'il doit installer. Pour définir les paquetages, il va utiliser les deux fichiers compssUsers.pl et rpmsrate qu'il a déjà chargés.

Ce processus se fait en plusieurs étapes :

  1. compssUsers1Définition de quelques variables
    Le début du fichier compssUsers.pl permet, selon les capacités de l'ordinateur (taille mémoire, vitesse processeur) et selon le type de la distribution (Powerpack ou non), de définir les variables $low_resources, $server et $powerpack.
    Édit : depuis 2009.0, deux autres variables ont été ajoutées : netbook_desktop et ligth_desktop
  2. compssUsers2Sélection des groupes de paquetages, en fonction de ces variables
    La suite du fichier compssUsers.pl comprend différentes entrées de groupes : N_("Workstation"), N_("Server"), N_("Graphical Environment") et N_("Utilities").
    Chaque groupe comprend également une ou plusieurs "sous-entrées".
    La figure montre un extrait du fichier compssUsers.pl, avec le groupe "Graphical Environment" et le premier de ses sous-groupes, portant l'étiquette "KDE Workstation".
    Description :
      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 => !$low_resources
      les valeurs de default_selected peuvent être :
    • 1 : les drapeaux de la ligne précédente sont positionnés
    • 0 ou absence de la ligne default_selected : aucun drapeau n'est positionné
    • une variable : les drapeaux de la ligne précédente sont positionnés si cette variable vaut 1.
      (Ici, la valeur est l'inverse (!) de la valeur de la variable $low_resources, ce qui veut dire que ce sous-groupe est sélectionné si l'ordinateur n'a pas des ressources trop faibles (RAM > 100Mo, Processeur > 350MHz))
    Dans notre exemple (Powerpack 2008.0), en fonction des éléments connus jusque là (low_ressources=non, Powerpack=oui, Serveur=non), l'installateur définit les groupes suivants :
     
    Groupes et sous-groupes de paquetages retenus par compssUsers.pl
    Server|Web/FTP Server|Mail Server|Database Server|Firewall/Router
    Server|Network Computer server
    Workstation|Office Workstation Workstation|Game station Workstation|Multimedia station Workstation|Internet station
    Workstation|Network Computer (client) Workstation|Configuration Workstation|Console Tools Workstation|Development
    Workstation|Documentation Workstation|LSB
    Graphical Environment|KDE Workstation Graphical Environment|GNOME Workstation Graphical Environment|IceWm Desktop Graphical Environment|Other Graphical Desktops
    Édit : Depuis 2009.1, Graphical Environment|IceWm Desktop est remplacé par Graphical Environment|LXDE Desktop
  3. Espace disque pouvant être alloué à l'installation
    L'installateur recherche l'espace disque disponible et en déduit l'espace allouable à l'installation
  4. Définition des préférences
    Lorsque plusieurs paquetages remplissent une même fonction, l'installateur recherche les préférences dans la prefer.vendor.list
  5. compssUsers2Sélection des drapeaux correspondant aux groupes définis ci-dessus, pour l'environnement KDE qui est choisi par défaut
    Nous avions vu que le fichier compssUsers.pl définit différents groupes et sous-groupes.
    Pour chaque sous-groupe, il y a notamment une ligne flags (drapeaux) et, éventuellement, une ligne default_select.
    Si la valeur de default_select (ou de la variable correspondante) est égale à 1, les drapeaux de la ligne flags sont sélectionnés.
    Ainsi, avec l'exemple ci-contre, si la variable $low_resources est nulle (donc default_select = !$low_resources = 1), alors les drapaux KDE X ACCESSIBILITY THEMES sont sélectionnés.
    Il faut noter que la ligne flags peut également avoir des drapeaux dépendant d'une variable.
    Dans notre exemple (Powerpack 2008.0), l'installateur positionne les drapeaux suivants :
     
    Drapeaux définis par compssUsers.pl (Powerpack 2008.0 DVD)
    3D CAT_ACCESSIBILITY CAT_ARCHIVING CAT_AUDIO
    CAT_BOOKS CAT_CDCOM CAT_COMMUNICATIONS CAT_CONFIG
    CAT_EDITORS CAT_FILE_TOOLS CAT_GRAPHICS CAT_KDE
    CAT_MINIMAL_DOCS CAT_NETWORKING_CHAT CAT_NETWORKING_DNS CAT_NETWORKING_FILE
    CAT_NETWORKING_FILE_TRANSFER CAT_NETWORKING_INSTANT_MESSAGING CAT_NETWORKING_IRC CAT_NETWORKING_MAIL
    CAT_NETWORKING_NEWS CAT_NETWORKING_REMOTE_ACCESS CAT_NETWORKING_WWW CAT_OFFICE
    CAT_PIM CAT_PUBLISHING CAT_SHELLS CAT_SPELLCHECK
    CAT_SYSTEM CAT_TERMINALS CAT_TEXT_TOOLS CAT_THEMES
    CAT_VIDEO CAT_X CHARSET"iso-8859-15" DVD
    LOCALES"fr" LOCALES"fr_FR" META_CLASS"powerpack" SOUND
    TRUE USB UTF8
    Édit : Pour 2010.0, les drapeaux peuvent être légèrement différents, mais le principe reste le même.
  6. rpmsrateDéfinition des paquetages à installer pour un environnement KDE
    Après cette première étape de sélection (le positionnement de drapeaux), il s'agit de définir les paquetages qui seront installés pour le bureau KDE (bureau par défaut).
    C'est le fichier rpmsrate (la figure ci-contre en donne un petit extrait) qui va servir. Il a deux fonctions :
    • définir les paquetages qui correspondent à un drapeau. Exemple : CAT_SYSTEM
    • définir l'importance de chaque paquetage, notée de 1 (peut-être) à 5 (important).
    Édit : le fichier actuel a évolué un peu, mais le processus reste identique.
    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 :
    • il cherche l'entrée correspondant au premier drapeau (mettons CAT_SYSTEM)
    • il lit la première ligne 5 at eject ldetect harddrake s2u sharutils locales iputils urpmi msec tmpwatch
      le niveau est 5 : il sélectionne tous ces paquetages
    • il lit la ligne suivante 5 META_CLASS"download" mandriva-release-Free
      le niveau est 5, mais il y a une condition supplémentaire : META_CLASS="download". Comme elle n'est pas vérifiée, rien n'est sélectionné.
    • il lit la ligne suivante 5 META_CLASS"powerpack" mandriva-release-Powerpack
      la condition est vérifiée : le paquetage est sélectionné.
    • pour une ligne telle que 5 HIGH_SECURITY libsafe lads
      il faut que le drapeau HIGH_SECURITY soit placé. Ce n'est pas le cas, donc rien de plus.
    • pour une ligne telle que 5 DRIVER"^LT:" ltmodem
      il faut qu'il y ait une variable DRIVER dont la valeur commence par LT
    • pour une ligne telle que 5 DRIVER"slamr|slusb" slmodem-kernel
      il faut qu'il y ait une variable DRIVER dont la valeur soit slamr ou slusb
    • pour une ligne telle que 5 DRIVER"a320raid" || HW"HostRAID" a320raid
      il faut qu'il y ait une variable DRIVER dont la valeur soit a320raid ou une variable HW de valeur HostRAID
    • il peut encore y avoir des conditions plus complexes.
    Selon l'espace disque disponible, un nombre plus ou moins important de paquetages pourra être installé. La liste est habituellement assez impressionnante.
  7. Sélection des groupes 3L'installateur est maintenant prêt. Il sait quels paquetages il peut proposer, en fonction de la configuration matérielle de l'ordinateur et du support d'installation (dans notre exemple, DVD Powerpack)
    Si l'espace disque est suffisant, l'installateur propose maintenant de choisir entre les différents bureaux :
    • KDE,
    • Gnome
    • une installation personnalisée. Ce choix vous conduit à une autre fenêtre, où vous pouvez choisir les applications à installer.
    Par défaut, l'environnement KDE est déjà présélectionné.
    Si votre espace disque est trop faible, vous accédez directement la fenêtre de l'installation personnalisée.
Haut

Vous choisissez un des bureaux prédéfinis

Avec un espace disque suffisant, l'installateur vous propose de choisir entre : Bureau KDE, Bureau Gnome et Bureau personnalisé.

Lorsque vous arrivez à la fenêtre relative au choix du bureau, les étapes 1 à 7, décrites ci-dessus sont donc déjà franchies.
Le fichier ddebug.log affiche les lignes dont voici le début :
* setSelectedFromCompssList: reached size xxxMB, up to indice 5 ...
* setSelectedFromCompssList: ...
La suite des opérations dépend maintenant de votre choix.

Le fichier ddebug.log affiche la ligne * chosen Desktop: KDE ou * chosen Desktop: GNOME

Cela se traduit par les opérations suivantes :

  • les drapeaux sont redéfinis :
    Ils ne changent pas si vous avez conservé le choix du bureau KDE.
    Seul CAT_KDE est remplacé par CAT_GNOME si vous avez préféré le bureau Gnome.
  • tous les paquetages sont désélectionnés.
  • la liste des préférences permet à nouveau de départager certains paquetages.
  • les paquetages sont resélectionnés selon les drapeaux (éventuellement modifiés), jusqu'au niveau 4. La liste est donc plus importante, mais dépend de l'espace disque disponible.

L'auto-sélection est terminée et le fichier ddebug.log affiche la ligne * step `choosePackages' finished, l'installation va commencer.
Cette page est terminée pour vous.

Haut

Une installation personnalisée

Installation personnaliséeL'installation personnalisée résulte de deux actions possibles :

  1. À la fin des étapes 1 à 7, l'installateur vous a proposé les bureaux et vous avez cliqué sur Installation personnalisée.
    Une fenêtre semblable à celle ci-contre s'affiche et le fichier ddebug.log affiche la ligne :
    * chosen Desktop: Custom
  2. À la fin des étapes 1 à 7, l'espace disque est insuffisant et l'installateur ne vous propose pas de choisir un bureau.
    Vous accédez directement à la fenêtre d'une installation personnalisée et le fichier ddebug.log affiche la ligne :
    * not asking for desktop since not enough place

La suite du processus est la même dans les deux cas :

Il y a maintenant plusieurs façons de réaliser une installation personnalisée.

Haut

Ajout ou suppression de groupes de paquetages

Dans la fenêtre de dialogue, vous pouvez cocher ou décocher des groupes entiers d'applications.
Chaque fois que vous cochez ou décochez, cela se traduit par deux lignes dans ddebug.log :

  • l'installateur recalcule l'espace nécessaire en fonction des drapeaux : ligne * computed size
  • l'installateur définit les paquetages : ligne * chooseGroups:

Lorsque vous avez terminé la sélection, vérifiez que votre sélection ne dépasse pas l'espace disque disponible. Cliquez ensuite sur le bouton installation. Cela se traduit par :

  • la mise à jour de la sélection des groupes et sous-groupes = une ligne : * compssUsersChoice selected: ...
  • la déselection de tous les paquetages = ligne * unselecting all packages...
  • la redéfinition des préférences
  • les drapeaux correspondants sont resélectionnés = ligne : * setSelectedFromCompssList: reached size xxxMB, up to indice 4 ...
  • les paquetages correspondants sont listés = ligne : * setSelectedFromCompssList: GConf2 ...
Haut

Sélection individuelle des paquetages

Une case à cocher vous permet de sélectionner des paquetages individuellement au lieu de choisir des groupes d'applications.
Ceci implique évidemment une bonne connaissance des fonctions de chaque paquetage sélectionné.

Vous pouvez d'ailleurs choisir d'abord des groupes d'application (ce qui se traduit par les lignes * computed size et * chooseGroups: comme vu ci-dessus),
ensuite vous affinez par l'ajout ou la suppression de certains paquetages.

Installation personnaliséePour accéder au choix individuel, cochez la case et cliquez sur le bouton Suivant.
L'installateur considère alors que le choix des groupes est terminé, ce qui se traduit par :

Vous accédez à la fenêtre ci-contre, où vous pouvez détailler chaque groupe, puis choisir individuellement.
Au besoin, l'installateur ajoute les dépendances.
Le fichier ddebug.log ne mentionne ni les sélections individuelles, ni les dépendances éventuelles..

La sélection est terminée et le fichier ddebug.log affiche la ligne * step `choosePackages' finished, l'installation va commencer.
Cette page est terminée pour vous.

Haut

Installation avec une liste de paquetages

Si vous avez une assez bonne expérience de Linux et que vous souhaitez installer uniquement les applications que vous utilisez effectivement, alors vous pouvez adopter une installation personnalisée avec chargement d'un fichier comprenant la liste de paquetages correspondant à ces applications.

Pour ceci, au moment de la définition du bureau que vous voulez installer, vous allez choisir une installation personnalisée,
puis vous choisissez sélection individuelle des paquetages.
Comme dans l'exemple précédent, l'installateur considère alors que le choix des groupes est terminé, ce qui se traduit par :

  • la mise à jour de la sélection des groupes et sous-groupes = une ligne : * compssUsersChoice selected: ...
  • la déselection de tous les paquetages = ligne * unselecting all packages...
  • la redéfinition des préférences
  • les drapeaux correspondants sont resélectionnés = ligne : * setSelectedFromCompssList: reached size xxxMB, up to indice 4 ...
  • les paquetages correspondants sont listés = ligne : * setSelectedFromCompssList: GConf2 ...

Vous cliquez alors sur l'icône représentant une disquette, pour charger le fichier qui liste les paquetages à installer. ddebug.log affiche la ligne :
* load package selection
Vous indiquez le chemin du fichier.
Comme pour les autres sélections individuelles, le fichier ddebug.log ne renseigne pas sur les choix.
La ligne * step `choosePackages' finished vous dit simplement que la sélection est terminée.

Haut
 

Les pages relatives aux tutoriels :

Installation : avant, pendant, après Installation, pas à pas, de 2008.0 Installation, depuis internet Installation en réseau
Comment MDV sélectionne les paquetages Créer sa liste de paquetages
Configuration du système Configuration d'un utilisateur KDE Serveur de fichiers avec ProFTPD Partage de fichiers avec NFS
Réveiller un ordinateur à distance Commander un ordinateur à distance avec ssh
Le son et la gestion du son La video et la gestion des images Découvrir la puissance de Gstreamer
Faire des sauvegardes générales Nettoyer le répertoire /home Changer de client de messagerie Synchroniser fichiers et répertoires
Créer sa distribution personnelle Autopsie d'une distribution Mandriva

Les différentes rubriques :

Accueil Ordinateur Mandriva Tutoriels Initiation à la programmation Maison bioclimatique
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.