Créer son image ISO Calculate personnalisée
Table des matières
Dans cet article, nous allons voir comment personnaliser une ISO de Calculate Linux avec les logiciels de son choix.
Tous les logiciels que nous utiliserons s'appellent cl-builder-XXX et exécuteront en root.
La première étape est de récupérer une image ISO de Calculate Linux, qui nous servira de base. Il faut prendre une ISO de la même architecture que votre PC : 64bits = x86_64, 32bits = i686). Il est préférable de récupérer pour le premier build une ISO dite nightly qui a été générée récemment, pour éviter une grande quantité de mises à jour.
Si vous mettez à jour une ISO que vous avez déjà personnalisé, il suffit de la reprendre.
Dans cet article, l'ISO prise est cldm-20170407-x86_64.iso :
Pour extraire l'ISO, on utilise cl-builder-prepare :
Donc on va utiliser la commande suivante :
Dans notre exemple voici le résumé avant validation :
On répond yes et l'opération se déroule :
Une fois terminé, on constate que les différents chemins ont bien été montés grâce à la commande df -h :
La partie de préparation est terminée.
Maintenant, on va personnaliser ses logiciels en installant ceux de son choix. Pour cela, on va effectuer un chroot pour se positionner dans le futur système à empaqueter :
À partir de là, on est dans notre système, on peut donc installer/désinstaller ce qu'on veut. Voici un exemple :
Vous pouvez, avant d'installer des logiciels, mettre la distribution et les logiciels contenus dedans à jour :
On peut donc installer des logiciels :
Pour les logiciels masqués, il suffit de faire comme sur un système classique, éditer le fichier qui va bien :
Et après on peut installer des logiciels masqués, comme discord ou la dernière version de youtube-dl :
On peut de la même façon personnaliser les USE avec le fichier package.use :
On peut aussi installer des overlay (dépôts additionnels) :
Puis on actualise la base eix
Et on peut installer des logiciels depuis ces overlay :
Une fois qu'on a terminé, on quitte le chroot :
Maintenant que le futur système est personnalisé, il suffit de créer son ISO avec cl-builder-image :
On peut personnaliser plein d'options, notamment le compresseur (par défaut XZ) et l'inclusion des pilotes propriétaires dans l'ISO.
La compression XZ est plus importante mais demande d'avantage de ressources sur la machine.
Voici un exemple de création d'image :
Dans notre exemple, voici le résumé avant création :
On répond yes et l'opération se déroule :
Une fois terminé, on constate que l'ISO et sa liste de logiciels a bien été créé :
Une fois que tout est OK, on peut nettoyer le travail, les fichiers restés sur le système hôte via cl-builder-break :
Dans notre exemple, voici le résumé avant nettoyage :
On répond yes et l'opération se déroule :
Une fois terminé, et bien c'est terminé
Introduction
Dans cet article, nous allons voir comment personnaliser une ISO de Calculate Linux avec les logiciels de son choix.
Tous les logiciels que nous utiliserons s'appellent cl-builder-XXX et exécuteront en root.
Code TEXT :
cl-builder-break cl-builder-prepare cl-builder-restore cl-builder-image cl-builder-profile cl-builder-update
Préparer le Build
La première étape est de récupérer une image ISO de Calculate Linux, qui nous servira de base. Il faut prendre une ISO de la même architecture que votre PC : 64bits = x86_64, 32bits = i686). Il est préférable de récupérer pour le premier build une ISO dite nightly qui a été générée récemment, pour éviter une grande quantité de mises à jour.
Si vous mettez à jour une ISO que vous avez déjà personnalisé, il suffit de la reprendre.
Dans cet article, l'ISO prise est cldm-20170407-x86_64.iso :
Pour extraire l'ISO, on utilise cl-builder-prepare :
Code TEXT :
usage: cl-builder-prepare [--source SOURCE] [-d DEST] [--layers [ON/OFF]] [--id ID] [-T TEMPLATES] [-v [ON/OFF]] [--usenew-conf | --skip-conf | --dispatch-conf] [-f] Prepare the New Build: --source SOURCE source image -d DEST, --disk DEST partition or directory intended for build ('list' pour afficher les valeurs possibles) --layers [ON/OFF] use layers for build (enabled by default) --id ID build ID -T TEMPLATES, --templates TEMPLATES choisir la localisation des modèles calculate,distros,local,remote,clt ('list' for displaying possible values, 'none' is never one) -v [ON/OFF], --verbose [ON/OFF] sortie verbeuse --usenew-conf utiliser les nouveaux fichiers de configuration (par défaut) --skip-conf sauter la mise à jour des fichiers de configuration --dispatch-conf faire une mise à jour manuelle des fichiers de configuration Paramètres généraux: -f, --force rester silencieux tant que le processus est en cours
Donc on va utiliser la commande suivante :
Code BASH :
cl-builder-prepare --source /home/adrien/Téléchargements/cldm-20170407-x86_64.iso
Dans notre exemple voici le résumé avant validation :
Code TEXT :
Prepare the New Build * Source image : Calculate Linux Desktop MATE 17 x86_64 20170407 * System profile : distros:CLDM/amd64 * Build files : /var/calculate/builder/distros_CLDM_amd64 * Build ID : distros:CLDM/amd64 * Use layers for build : oui * Free disk space : 17.4G Lancer le processus ? (Yes/No):
On répond yes et l'opération se déroule :
Code TEXT :
* Unpacking the system image to the target ... [ ok ] * Mounting resources ... [ ok ] * Configuring build ... [ ok ] * Build prepared successfully in "/run/calculate/mount/distros_CLDM_amd64"
Une fois terminé, on constate que les différents chemins ont bien été montés grâce à la commande df -h :
Code BASH :
df -h Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur devtmpfs 10M 0 10M 0% /dev shm 3.9G 281M 3.6G 8% /dev/shm tmpfs 3.9G 1.3M 3.9G 1% /run /dev/sda6 29G 15G 13G 54% / cgroup_root 10M 0 10M 0% /sys/fs/cgroup /dev/sda8 93G 78G 14G 86% /home /dev/sda5 29G 9.8G 18G 36% /var/calculate /dev/sdb1 917G 759G 149G 84% /media/DATA /dev/sda2 48G 45G 2.6G 95% /media/SSD none 3.9G 48K 3.9G 1% /run/user/1000 none 3.9G 0 3.9G 0% /run/user/0 /dev/loop0 1.7G 1.7G 0 100% /run/calculate/mount/iso /dev/loop1 1.7G 1.7G 0 100% /run/calculate/mount/squash none 29G 9.8G 18G 36% /run/calculate/mount/distros_CLDM_amd64
La partie de préparation est terminée.
La personnalisation
Maintenant, on va personnaliser ses logiciels en installant ceux de son choix. Pour cela, on va effectuer un chroot pour se positionner dans le futur système à empaqueter :
Code BASH :
chroot /run/calculate/mount/distros_CLDM_amd64 /bin/bash
À partir de là, on est dans notre système, on peut donc installer/désinstaller ce qu'on veut. Voici un exemple :
Code BASH :
emerge -C pidgin-libnotify pidgin claws-mail-theme-calculate claws-mail
Vous pouvez, avant d'installer des logiciels, mettre la distribution et les logiciels contenus dedans à jour :
Code BASH :
cl-update
On peut donc installer des logiciels :
Code BASH :
emerge chromium thunderbird audacity kdenlive kde-l10n steam-launcher virtualbox{,-additions,-extpack-oracle,-modules}
Pour les logiciels masqués, il suffit de faire comme sur un système classique, éditer le fichier qui va bien :
Code BASH :
vi /etc/portage/package.keywords/custom
Et après on peut installer des logiciels masqués, comme discord ou la dernière version de youtube-dl :
Code BASH :
emerge youtube-dl discord-bin
On peut de la même façon personnaliser les USE avec le fichier package.use :
On peut aussi installer des overlay (dépôts additionnels) :
Code BASH :
layman -S layman -a overlay-personnalisé
Puis on actualise la base eix
Code BASH :
eix-sync
Et on peut installer des logiciels depuis ces overlay :
Code BASH :
emerge vivaldi{,-ffmpeg-codecs}
Code TEXT :
>>> Installing (1 of 2) www-client/vivaldi-1.8.770.50_p1-r1::adrien-overlay Installing (2 of 2) www-plugins/vivaldi-ffmpeg-codecs-56.0.2924.87::adrien-overlay
Une fois qu'on a terminé, on quitte le chroot :
Code BASH :
exit
Création de l'ISO
Maintenant que le futur système est personnalisé, il suffit de créer son ISO avec cl-builder-image :
Code TEXT :
usage: cl-builder-image [--id ID] [--iso IMAGE] [-V [ON/OFF]] [--keep-tree [ON/OFF]] [--isohybrid [ON/OFF]] [--prelink [ON/OFF]] [-c COMPRESS] [--stable [ON/OFF]] [-U [ON/OFF]] [-T TEMPLATES] [-v [ON/OFF]] [--usenew-conf | --skip-conf | --dispatch-conf] [-f] Create the Image: --id ID build ID ('list' pour afficher les valeurs possibles) --iso IMAGE set image path -V [ON/OFF], --video [ON/OFF] include proprietary video drivers --keep-tree [ON/OFF] keep portage tree in image (enabled by default) --isohybrid [ON/OFF] create the ISO image with isohybrid (enabled by default) --prelink [ON/OFF] perform prelink -c COMPRESS, --compress COMPRESS set the compressor ('list' pour afficher les valeurs possibles) --stable [ON/OFF] use only stable updates (enabled by default) -U [ON/OFF], --update-themes [ON/OFF] update themes -T TEMPLATES, --templates TEMPLATES choisir la localisation des modèles calculate,distros,local,remote,clt ('list' for displaying possible values, 'none' is never one) -v [ON/OFF], --verbose [ON/OFF] sortie verbeuse --usenew-conf utiliser les nouveaux fichiers de configuration (par défaut) --skip-conf sauter la mise à jour des fichiers de configuration --dispatch-conf faire une mise à jour manuelle des fichiers de configuration Paramètres généraux: -f, --force rester silencieux tant que le processus est en cours
On peut personnaliser plein d'options, notamment le compresseur (par défaut XZ) et l'inclusion des pilotes propriétaires dans l'ISO.
La compression XZ est plus importante mais demande d'avantage de ressources sur la machine.
Voici un exemple de création d'image :
Code BASH :
cl-builder-image --id distros:CLDM/amd64 -V ON --iso /home/adrien/Téléchargements/cldm-adrien-20170410-x86_64.iso
Dans notre exemple, voici le résumé avant création :
Code TEXT :
Create the Image * Build ID : distros:CLDM/amd64 * System : Calculate Linux Desktop 17 MATE x86_64 20170410 * Building short name : CLDM * Subname : MATE * System type : desktop * Building system version : 17 * Build version : 20170410 * Image path : /home/adrien/Téléchargements/cldm-adrien-20170410-x86_64.iso * Include proprietary video drivers : oui * Compressor : xz * ISO hybrid feature : oui * Keep portage tree : oui * Perform prelink : non * Update themes : non * Free disk space for ISO building : 14.8G * Free disk space for ISO image : 12.9G * Use only stable updates : oui * Méthode de mise à jour des fichiers de configuration : Valider les nouveaux fichiers de configuration Lancer le processus ? (Yes/No):
On répond yes et l'opération se déroule :
Code TEXT :
* Configuring build ... [ ok ] Fetching video drivers * Calculating dependencies for x11-drivers/nvidia-drivers ... * Depends dev-libs/jansson-2.9, app-eselect/eselect-opencl-1.1.0-r1 * Fetching binary packages and sources tarballs ... [ ok ] * Calculating dependencies for <x11-drivers/nvidia-drivers-341.0.0 ... * Depends dev-libs/jansson-2.9, app-eselect/eselect-opencl-1.1.0-r1 * Fetching binary packages and sources tarballs ... [ ok ] * Cleaning and copying driver files ... [ ok ] * Creating install video driver data ... [ ok ] * Cleaning the history of the Distros repository ... [ ok ] * Cleaning the history of the Calculate repository ... [ ok ] * Cleaning the history of the Gentoo repository ... [ ok ] Creating live image * Umount build system resources ... [ ok ] * Configuring squash filesystem image ... [ ok ] * Pack squash filesystem image ... [ ok ] * Prepare ISO data ... [ ok ] * Pack ISO image ... [ ok ] * Appling isohybrid feature for image ... [ ok ] * Creating package list ... [ ok ] * Restore build system resources ... [ ok ] * Image created successfully
Une fois terminé, on constate que l'ISO et sa liste de logiciels a bien été créé :
Code BASH :
ls -lh /home/adrien/Téléchargements/cldm-* -rw-r--r-- 1 adrien adrien 1.7G 10 avril 10:11 /home/adrien/Téléchargements/cldm-20170407-x86_64.iso -rw-r--r-- 1 root root 2.3G 10 avril 10:54 /home/adrien/Téléchargements/cldm-adrien-20170410-x86_64.iso -rw-r--r-- 1 root root 31K 10 avril 10:54 /home/adrien/Téléchargements/cldm-adrien-20170410-x86_64.list
Nettoyer le travail
Une fois que tout est OK, on peut nettoyer le travail, les fichiers restés sur le système hôte via cl-builder-break :
Code BASH :
cl-builder-break --id distros:CLDM/amd64
Dans notre exemple, voici le résumé avant nettoyage :
Code TEXT :
Break the Build * System : Calculate Linux Desktop 17 MATE x86_64 20170410 * Build ID : distros:CLDM/amd64 * Clear after unmount : oui * Clear binary packages after unmount : non Lancer le processus ? (Yes/No):
On répond yes et l'opération se déroule :
Code TEXT :
Lancer le processus ? (Yes/No): yes * Breaking distros:CLDM/amd64 build ... [ ok ] * Build broken successfully
Une fois terminé, et bien c'est terminé