4.9 Construire un système personnalisé avec calculate-assemble

Objectif

calculate-assemble a été conçu pour construire des images LiveCD amorçables, avec possibilité d'installer sur le disque dur aussi bien que sur un support USB. Pour information, ce même outil sert à l'équipe Calculate à créer les images Stage hebdomadaires.

Fonctionnalités

  • Architectures supportées : i686 et x86_64.
  • Profils de compilation : Gentoo et Calculate 32 bits ou 64 bits.
  • La construction simultanée de plusieurs images est supportée.
  • Il est possible de construire des distributions 32 bits sur un système en 64 bits.

Installation de calculate-assemble

Le paquet calculate-assemble fait partie des Utilitaires Calculate 2 (pour l'instant). Il nécessite calculate-install, calculate-builder, calculate-templates et calculate-lib pour fonctionner.

Commencez par installer la dernière version de calculate-assemble disponible dans l'overlay calculate, inclus par défaut dans toutes les distributions Calculate. Si vous êtes sous Gentoo, installez le paquet app-portage/layman, si ce n'est déjà fait, pour pouvoir ajouter l'overlay :

layman -a calculate

Vous pouvez maintenant lancer emerge pour installer calculate-assemble.

Utiliser calculate-assemble

Les outils cl-assemble et cl-make se chargent de la construction de votre système personnalisé. L'image ISO est créée à l'aide de cl-image (fournit par le paquet sys-apps/calculate-builder).

Fichiers prérequis

Vous aurez besoin d'une connexion Internet. Pensez à télécharger les fichiers ci-dessous au préalable :

Fichiers requis :
  • Une image stage3 de Gentoo ou image ISO de Calculate Linux (celle que nous fournissons ou celle que vous aurez créée). Si vous envisagez de partir d'une stage3, créez d'abord le répertoire /var/calculate/remote/stages pour y mettre l'archive d'un système 32 bits ou 64 bits. Si vous préférez Calculate Linux, mettez l'image téléchargée dans le répertoire /var/calculate/remote/linux.
Fichiers facultatifs :
  • Une archive de l'arbre Portage. Créez le répertoire /var/calculate/remote/snapshots puis mettez-y la version la plus récente de Portage.

Avant de procéder, lire la page d'aide de cl-assemble serait probablement d'intérêt :

cl-assemble --help

Vous aurez besoin de 15 Go environ sur le disque dur. Si des paquets binaires sont créés, vous devez leur réserver de la place aussi (5 Go approx.). La taille de l'image peut évidemment varier, mais pensez à 2 Go voire plus.

Le nouveau système sera construit sur une partition dédiée du disque dur. Comme l'image résultante et les paquets précompilés sont sauvegardés dans /var/calculate/remote, n'oubliez pas de libérer les 2 Go ou 7 Go, respectivement, dans ce répertoire, ainsi que 15 Go sur votre HDD.

Préparer le système à la construction

Pour préparer votre système à la construction, lancez :

cl-assemble

Options principales

  • -d <partition>, --disk <partition> indique la partition qui sera utilisée pour construire le nouveau système.
    Vérifiez que la partition indiquée ne contient aucune information utile. Faites une copie de vos données auparavant si besoin. Toutes les informations contenues sur cette partition seront supprimées !
  • --march <architecture> indique l'architecture (i686 ou x86_64).
    Une liste de profils compatibles sera créée en fonction de l'architecture spécifiée.
  • -p <profil>, --profile indique le profil système. Pour visualiser la liste des profils disponibles, passez « list » comme argument à cette option.
  • --source <source> indique l'image source. Les valeurs acceptées sont stage et <nom_abrégé>.
    Comme expliqué ci-dessus, vous pouvez choisir entre une image stage3 de Gentoo et n'importe quelle distribution Calculate Linux. Dans ce dernier cas, veuillez préciser le nom abrégé de la distribution choisie, par exemple : --source=CDS.
  • --ver <version> indique la version du système.
    La version peut être un entier ou un décimal avec un point. Il est possible d'utiliser deux points dans un nom de version. Si cette option est omise, le nommage se fera d'après la date de construction (en format année, mois, jour).
  • --name=<nom_abrégé></nom></environnement> indique le nom de la distribution : nom abrégé, nom complet, environnement utilisé (par exemple, CLD/Calculate Linux Desktop/KDE).

Options additionnelles

  • --sync <rsync> permet d'indiquer le miroir rsync préféré pour les mises à jour de Portage. Depuis la version 2.2.25-r4, il est possible d'utiliser un mirroir Git.
  • --no-unmount empêche de démonter, en cas d'erreur, la partition contenant le système à construire. Depuis la version 2.2.25-r4, calculate-assemble ne démonte pas la partition par défaut.
  • --unmount démonte la partition en cas d'erreur.
  • --nobuildpkg empêche la création de paquets binaires.

Lors de la préparation à la construction, la partition dédiée à ces fins sera formatée puis montée dans le répertoire /mnt/<profil>. La partition sera formatée au même système de fichiers que celui utilisé auparavant, pourvu qu'il soit supporté par le programme.

La préparation inclut les étapes suivantes :

  • Formatage de la partition (pour un nettoyage rapide)
  • Désarchivage de l'image source
  • Désarchivage de l'arbre Portage (si le répertoire /var/calculate/remote/snapshots en contient une archive)
  • Configuration avec les modèles assemble/prepare
  • Montage de /dev, /dev/shm, /dev/pts, /proc, /sys, /var/calculate/remote
  • Actualisation de l'arbre Portage
  • Installation de layman
  • Chargement de l'overlay @calculate
  • Configuration avec les modèles assemble/setup
  • Activation de calculate-install pour configurer les paquets (si un profil Calculate est utilisé)
  • Installation de portage
  • Obtention du code source du noyau (à partir du paquet calculate-sources ; si le paramètre USE « vmlinuz » est activé, emerge compilera et installera le noyau)
  • Installation de v86d
  • Mise à jour de baselayout, installation de openrc (exécuté si un profil Calculate est utulisé)
  • Installation de man-db (exécuté si un profil Calculate est utulisé)
  • Exécution de etc-update
  • Création du groupe games(35) (les groupes sont créés afin de réserver les ID)
  • Création du groupe plugdev(440)
  • Création du groupe scanner(441)
  • Démontage de l'image source

Vérifier les dépendances

Une fois le système préparé à la construction, il importe de vérifier les dépendances pour les corriger au besoin, en démasquant des paquets. Pour ce faire, exécutez :

cl-make -D <-p profil>

Notez que vous pouvez saisir le nom abrégé du profil, ici et par la suite. Ainsi pour le profil « calculate/desktop/CLD/amd64 » il est possible de mettre juste « CLD », « CLD/amd64 », « desktop/amd64 » ou encore « amd64$ ». Dans cette dernière façon d'écrire, le signe « $ » à fin correspond à la fin du nom de profil. Si vous ne construisez qu'une image à la fois, vous pouvez ne pas indiquer le profil.

Construire

Pour construire enfin votre système personnalisé, lancez :

cl-make -m <-p profil>

et c'est parti.

Tous les paquets nécessaires, contenant les codes source des logiciels, seront placés dans /var/calculate/remote/distfiles. Si vous n'avez pas utilisé l'option --nobuildpkg, des archives de paquets binaires seront créées dans le répertoire /var/calculate/remote/assemble/<profil>/packages.

Mettre à jour

Tout comme la construction, la mise à jour de votre image sera faite avec l'outil cl-make. Commencez par préparer votre système avec cl-assemble comme décrit ci-dessus ; l'image de la distribution doit être spécifiée dans l'option --source.

La commande à saisir pour mettre à jour est la suivante :

cl-make -u <-p profil>

La mise à jour inclut les opérations suivantes :

  • Configuration avec les modèles assemble/prepare et assemble/setup
  • Actualisation de l'arbre Portage
  • Exécution de emerge -u perl
  • Exécution de perl-cleaner all (si besoin)
  • Exécution de emerge --noreplace calculate-meta
  • Exécution de emerge -D --newuse world
  • Exécution de emerge -uD world
  • Exécution de emerge --depclean
  • Exécution de module-rebuild -X rebuild (si besoin)
  • Exécution de revdep-rebuild -i (si besoin)
  • Exécution de prelink -afmR (si besoin)
  • Compilation des pilotes nvidia-drivers
  • Nettoyage du dépôt binaire (si besoin)
  • Exécution de eix-update

Vous pouvez également mettre à jour le système sans actualiser l'arbre Portage : si vous avez déjà fait cette manipulation à la main, par exemple, ou que des modifications relatives à l'intégration des paquets aient été effectuées sous chroot :

cl-make -U <-p profil>

Il est d'ailleurs toujours possible d'accéder votre système avec chroot, en exécutant simplement :

chroot /mnt/<profil>

Exemple :

chroot /mnt/calculate-desktop-CLD-amd64-developer

Toutes les barres obliques « / » dans le nom du répertoire <profil> seront remplacées par des tirets « - ».

Attention : pour accéder à un système 32 bits que vous êtes en train de construire sur votre machine en 64 bits, chroot doit être lancé comme suit :

linux32 chroot /mnt/<profil>

Par exemple :

linux32 chroot /mnt/calculate-desktop-CLD-x86-developer

Créer une image amorçable

Dès que vous aurez construit et/ou mis à jour votre système personnalisé, vous pouvez enfin créer une image ISO amorçable :

cl-image -p <profil> iso

A l'issue de cette commande, l'image sera sauvegardée dans le répertoire /var/calculate/remote/assemble/<profil>/linux/. Un fichier contenant les sommes de contrôle et un autre, listant les logiciels préinstallés, seront également créés.

Arrêter la construction

Pour arrêter la construction et démonter toutes les partitions impliquées, exécutez :

cl-make -p <profil> --break

Configuration

Tous les réglages du système que vous êtes en train de construire sont stockés dans le fichier /etc/calculate/assemble.env. Si vous avez redémarré entretemps, suppimez ce fichier ainsi que, si besoin, les répertoires dans /mnt/<profil>.

Pour faciliter la construction, nous avons introduit les variables internes des Utilitaires Calculate dont les valeurs peuvent être redéfinies dans le fichier calculate.env, localisé à /etc/calculate/calculate.env, /var/calculate/calculate.env ou encore à /var/calculate/remote/calculate.env. Cela se fait dans la section [assemble] que vous devrez créer dedans. Les variables disponibles sont :
  • cl_assemble_sync pour le serveur de syncronisation rsync ou Git ;
  • cl_assemble_branch pour la branche du dépôt qui héberge l'arbre Portage et l'overlay (master par défaut) ;
  • cl_assemble_available_dev pour les partitions du disque dur disponibles et que calculate-assemble peut utiliser.

Exemples :

[assemble]
cl_assemble_sync = 192.168.0.2/gentoo-portage
cl_assemble_available_dev = /dev/sda5,/dev/sda6,/dev/sda7

[assemble]
cl_assemble_sync = git://git.calculate.ru/dev/portage.git
cl_assemble_branch = develop
cl_assemble_available_dev = /dev/sda5,/dev/sda6,/dev/sda7
Note :
  • Vous pouvez configurer un serveur local rsync ou Git et l'utiliser par la suite.
  • La variable cl_assemble_available_dev peut contenir une ou plusieurs partitions, séparées par une virgule. Dans ce dernier cas, le choix de la partition sera aléatoire.
Thank you!