From Mageia wiki
Revision as of 18:40, 1 December 2020 by Cmoifp (talk | contribs) (Created page with "{{Bandeau multi-langues-fr|English ; français ;}} == Contexte == L’outil utilisé pour créer les ISO A...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Template:Bandeau multi-langues-fr

Contexte

L’outil utilisé pour créer les ISO Autonomes de Mageia est Draklive2. Il est empaqueté et disponible pour être installé sur Mageia 7 et supérieur. La dernière version est dans cauldron et a été rétro portée vers l’infra6, pour permettre son utilisation sur les serveurs de construction Mageia.

La documentation de draklive2 décrit le processus de création d’une ISO Autonome personnalisée par un utilisateur. Ces notes décrivent la manière dont les ISO officielles Autonomes de Mageia sont construites. Reportez-vous à la documentation complète pour plus de détails.

draklive2 construit les ISO en quatre étapes

1. Root

Celui-ci utilise l’outil d’installation classique pour mettre en place un système Mageia standard dans une réplique du système de fichiers de base et effectue ensuite toutes les « modifications » nécessaires définies par l’utilisateur à la suite de l’installation. La seule différence significative avec une installation standard est que celui-ci installe le support pour tout le matériel (plutôt que de détecter ce qui est essentiel pour la machine cible), et (en option) implémente le support pour toutes les options régionales et linguistiques.

2. Boot

Cela crée l’initrd et installe le chargeur d’amorçage dans une réplique du système de fichier de base. Celui-ci prépare également les fichiers supplémentaires nécessaires au démarrage d’un ISO hybride (c’est-à-dire le démarrage à partir de véritable DVD ou clé USB).

3. Loop

Cela comprime la réplique du système de fichier de base en une image de système de fichiers « squashfs ». Celle-ci est stockée sur l’ISO final dans le fichier « loopbacks/distrib.sqfs ». Lorsque vous démarrez un système autonome, celui-ci est monté (en lecture seule) et fusionné en mémoire en utilisant le système de fichiers « overlayfs ». C’est cette fusion en mémoire vive qui permet d’apporter des modifications à un système autonome en fonctionnement. Sur une clé USB, si l’utilisateur crée une partition supplémentaire dans l’espace restant, formatée avec un système de fichiers approprié (par exemple ext4) et étiquetée « mgalive-persist », cette partition sera utilisée à la place de la mémoire vive, ce qui permettra de conserver les modifications.

4. Master

Cela permet de construire l’image ISO finale à partir des fichiers créés dans les étapes Boot et Loop.

La composition de l’ISO autonome est déterminée par deux fichiers de configuration

1. Paramètres

Définir à l’aide de la ligne de commande avec l’option --settings (Le fichier /config/settings.cfg par défaut). Il s’agit d’un simple fichier texte de variable shell. Il contient les paramètres les plus basiques : Environnement de Bureau, architecture, région·s, chemin vers le dépôt, chemin vers le répertoire de construction, etc. La plupart peuvent être écrasés avec l’option --define en ligne de commande ce qui évite d’avoir à éditer le fichier lors de la génération des différentes saveurs de ISO autonomes.

2. Config

Définir à l’aide de la ligne de commande avec l’option --config (Le fichier /config/build.cfg par défaut). Celui-ci utilise la syntaxe perl. Contient une spécification plus détaillée de la composition de l’ISO autonome, y compris la sélection des paquets et tous les « réglages » mentionnés ci-dessus.

Construire localement

Bien que draklive2 puisse être configuré pour utiliser un dépôt distant, si vous devez le faire plus d’une fois, il est conseillé de créer un miroir local. Je procède de cette manière :

  MIRROR=rsync://rsync.mirrorservice.org/mageia.org/pub/mageia
  LOCAL_REPO=<path to big disk partition>/mageia
  RELEASE=cauldron
  rsync -avuH --delete $MIRROR/distrib/$RELEASE/i586   $LOCAL_REPO/distrib/$RELEASE/
  rsync -avuH --delete $MIRROR/distrib/$RELEASE/x86_64 $LOCAL_REPO/distrib/$RELEASE/

Soyez conscient qu’ils prennent une quantité considérable d’espace disque – actuellement 71 Go pour cauldron/i586 et 73 Go pour cauldron/x86_64. Si vous voulez construire uniquement pour une architecture, vous avez seulement besoin de répliquer cette architecture.

Suivez maintenant les étapes suivantes :

1. Installez le paquet drakiso et ses dépendances : Template:Sudo

Si vous souhaitez apporter des modifications à l’outil draklive2 lui-même, vous pouvez obtenir le code source grâce à

et ensuite, dans les instructions suivantes, remplacer la commande draklive2 par

perl -I../drakiso/lib ../drakiso/draklive2

(Cela suppose que vous ayez téléchargé drakiso dans le même répertoire que draklive-config).

2. Clonez le dépôt draklive-config et déplacez-vous dans le répertoire de la copie récupérée :

Konsole.png
[user@computer ~]$ git clone git://git.mageia.org/software/build-system/draklive-config && cd draklive-config


3. Dans le dossier draklive-config, modifier le fichier /config/settings.cfg:

  • changer le chemin du dépôt, p. ex.
          repository=$LOCAL_REPO/distrib/$RELEASE
  • changer le numéro de version, p. ex.
          version=7-beta1
  • changer le répertoire de travail pour un emplacement approprié sur votre disque local (nécessite actuellement 12-13 Go par variante).

4. Dans le dossier draklive-config, extraire les fichiers du chargeur d’amorçage depuis le dépôt :

Konsole.png
[user@computer ~]$ ./update_bootloader_files.sh

5. Dans le dossier draklive-config, éxécuter les quatre étapes de Draklive2 :

      draklive2 --all --define desktop=$DESKTOP --define arch=$ARCH

où $DESKTOP peut être l’un de ces éléments

  • GNOME
  • Plasma
  • Xfce

et $ARCH peut être l’une de ces architectures

  • i586
  • x86_64

Si vous voulez juste construire l’architecture D’environnement de Bureau définie par défaut dans le fichier /config/settings.cfg, alors utilisez :

Konsole.png
[user@computer ~]$ draklive2 --all


Lors de la reconstruction, il vous suffit de répéter l’étape 5 (et l’étape 4 si vous avez mis à jour votre miroir local). Vous pouvez commencez à partir de zéro en ajoutant l’option « --clean ». Vous également la possibilité de relancer certaines étapes en remplaçant « --all » par un ou plusieurs des éléments suivants

       --root
       --boot
       --loop
       --master

C’est utile pour tester les corrections de bogues. Vous pouvez modifier les fichiers individuellement dans la réplique du système de fichiers de base et ensuite simplement relancer les étapes --loop et --master. Les étapes seront exécutées dans l’ordre correct, quel que soit l’ordre dans lequel vous les aurez écrites.

Remarque :
Draklive2 utilisera la commande sudo pour exécuter toute action nécessitant des privilèges de super-utilisateur. Si vous ne souhaitez pas installer/utiliser sudo, vous pouvez exécuter draklive2 en tant que root.
Remarque :
Au lieu de modifier les chemins d’accès dans les fichiers de configuration, vous pouvez créer des liens symboliques dans votre système de fichiers local pour imiter les chemins d’accès utilisés sur le serveur Mageia. Cela facilite les choses lorsque vous voulez livrer d’autres modifications au dépôt git.

Construire sur le serveur Mageia

Afin de vous connecter vous aurez besoin d’un administrateur système pour vous créer un compte sur le serveur d’intégration continue (actuellement « rabbit ») et vous ajouter aux groupes mga-users, mga-packagers et mga-iso_makers. Vous devrez également avoir mis en place ssh comme décrit dans https://wiki.mageia.org/en/Empaqueteur_ssh-fr

Vous vous connectez au serveur par l’intermédiaire de ssh, p. ex.

Konsole.png
[user@computer ~]$ ssh my_mageia_id@rabbit.mageia.org


Cela vous donne une invite de commande sur le serveur.

Pour construire un ensemble complet d’ISO autonome, suivez les étapes suivantes :

  • Clonez le dépôt draklive-config et déplacez-vous dans le répertoire où l’extraction de la copie a eu lieu :
Konsole.png
[user@computer ~]$ git clone git://git.mageia.org/software/build-system/draklive-config && cd draklive-config


  • Exécuté le script build :
Konsole.png
[user@computer ~]$ ./build_all.sh


Les ISO sont construites en mémoire (/home/draklive/var_data) et sont ensuite copiées dans le répertoire rsync (/home/bcd//home/bcd/public_html isos/trial-builds/) d’où vous pouvez les télécharger sur votre machine locale en utilisant votre outil rsync préféré (par exemple mageiasync). Comme il n’y a pas assez de place en mémoire pour les quatre builds, build_all.sh les supprime de la mémoire une fois qu’ils ont été copiés dans le répertoire rsync.


Vous pouvez également construire des ISO individuelles, en utilisant le script build_one.sh.


Comme la réplique du système de fichiers de base a les mêmes autorisations d’accès aux fichiers qu’un système réel, vous y avez un accès limité. Cela rend difficile le débogage des problèmes sur le serveur Mageia, car les journaux d’installation sont stockés dans /root/drakx sur la réplique du systéme de fichiers, et peuvent seulement être lus par root. Je débogue généralement les problèmes en construisant localement, mais si les problèmes surviennent uniquement sur le serveur Mageia, j’ajoute quelques commandes dans la section postInstall du fichier /config/build.cfg pour rendre les logs lisibles. Pensez à défaire cela avant de publier les ISO !

Le dépôt local sur le serveur de construction se trouve dans /home/bcd/build_bcd/pieces. Il est synchronisé manuellement avec le dépôt principal par : Template:Sudo-fr

Ce dépôt est également utilisé pour la construction des ISO classiques, il faut donc le coordonner avec les autres concepteurs d’ISO. Il est essentiel pour toutes les réalisations d’ISO que le dépôt local ne change pas pendant le processus de construction.