4.9 Construire un système personnalisé avec calculate-assemble¶
- 4.9 Construire un système personnalisé avec calculate-assemble
- Objectif
- Fonctionnalités
- Installation de calculate-assemble
- Utiliser calculate-assemble
- Fichiers prérequis
- Préparer le système à la construction
- Vérifier les dépendances
- Construire
- Mettre à jour
- Créer une image amorçable
- Arrêter la construction
- Configuration
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/stagespour y mettre l'archive d'un système ou . Si vous préférez Calculate Linux, mettez l'image téléchargée dans le répertoire/var/calculate/remote/linux.
- Une archive de l'arbre Portage. Créez le répertoire
/var/calculate/remote/snapshotspuis 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
stageet <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-assemblene 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/snapshotsen 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-installpour 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é,emergecompilera et installera le noyau) - Installation de
v86d - Mise à jour de
baselayout, installation deopenrc(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>.
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_syncpour le serveur de syncronisation rsync ou Git ;cl_assemble_branchpour la branche du dépôt qui héberge l'arbre Portage et l'overlay (master par défaut) ;cl_assemble_available_devpour les partitions du disque dur disponibles et quecalculate-assemblepeut 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/sda7Note :
- Vous pouvez configurer un serveur local rsync ou Git et l'utiliser par la suite.
- La variable
cl_assemble_available_devpeut contenir une ou plusieurs partitions, séparées par une virgule. Dans ce dernier cas, le choix de la partition sera aléatoire.