Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
live-build
(sous Jessie !!!)On ne met pas la charue avant les boeufs
comme dirait l'autre…
Pour que vous puissiez progresser correctement avec live-build
, j'estime que le plus important, c'est qu'il faut que je vous détaille, ne serait-ce que brièvement, le fonctionnement et l'utilité de certaines commandes. J'ai donc choisi de construire la majeure partie de ce tuto sous cette forme plutôt que d'aborder des cas concrets. Vous aurez alors les clés en mains pour faire des manipulations avancées avec suffisamment de connaissance pour réaliser ce que vous avez en tête pour vos image iso.
ATTENTION !
Il va falloir lire beaucoup de man
les enfants, alors accrochez-vous ! Il s'agit cependant de la meilleure manière d'apprendre (et pas que pour live-build
, pour tout ce qui touche à l'univers GNU/Linux).
Consulter un man
consciencieusement pendant un bon quart d'heure peut vous économiser des jours voire des semaines de recherches sur le web. Ne négligez donc pas cela…
On va commencer par décortiquer les différentes phases de lb build
Prêts ? Allez, courage !
man live-build
Cette commande créé un répertoire config
et le peuple avec différents fichiers dans lesquelles sont inscrites les options de configuration, et des dossiers dans lesquelles peuvent être placé des fichiers, des scripts et autres afin de personnaliser l'iso.
Cette commande exécute dans l'ordre : lb bootstrap
, lb chroot
, lb binary
et lb source
(par défaut, lb source
est désactivé, je ne l'aborderai pas).
Chacune de ces commandes peuvent être appelées les unes à la suite des autres, cependant il vaut mieux laisser faire lb build
qui sait mieux que nous comme doit se dérouler la procédure…
Installe un système minimal dans un répertoire cache/bootstrap
. Les paquets .deb
seront rangé dans un répertoire cache/packages.bootstrap
, ce qui évite d'avoir es retélécharger même si tout le bootstrap
est supprimé.
Copie les bootsrap dans un dossier chroot
et installe des paquets supplémentaires (en autres : ceux que vous avez définis dans le fichier live.list.chroot
). De même les paquets .deb
sont archivés dans cache/packages.chroot
.
Compresse le chroot en un squashfs, puis installe les paquets nécessaires au démarrage de l'iso (comme syslinux et isolinux) dans un dossier binary
(les .deb
seront dans cache/packages.binary), puis grave l'iso dans le répertoire courant.
=== lb clean ===
===== lb config =====
Il y a beaucoup de choses possibles avec ce script… Pour vous rendre compte de cela :
<code user>man lb_config</code>
On peut ajouter les options en ligne de commande, comme ceci :
<code user>lb config –une-option un_parametre</code>
Ou bien tout mettre dans le fichier
auto/config ; une option sur une ligne, suivie d'un anti-slash, comme cela :
<file bash>
–une-option un_parametre \
</file>
Parmi les options utiles :
===–apt-source-archives false ===
N'inclue pas les dépôts source durant le bootstrap ou le chroot. Cela évite de gaspiller de la connexion pour rien, surtout qu'apt-get update est lancé plus d'une dizaine de fois pendant toute la procédure de
lb build ! (Observer la sorite de votre terminal ou bien le fichier build.log, et vous verrez)
===–apt-recommends false ===
Permets de ne pas installer les paquets recommandés. Pratique lorsque l'on veut faire un install minimale, uniquement avec les logiciels désirés. Cela permet également de réduire la taille de l'image iso pour ceux qui voudraient la graver sur un CD pour une raison X ou Y (impossibilité de booter sur une clé USB ou un DVD par exemple).
===–debian-installer true ===
Utiliser l'installateur standard (celui qui ne copie pas l'iso).
===–distribution stretch ===
Je pense que ça se passe de commentaire. Les plus téméraires d'entre vous pourraient (et je dis bien “pourraient”) être tentés de mettre
sid…
===–security true, –updates true et –backports true ===
(Une option par ligne !)
live.list.chroot
Permets d'inclure les dépôts security, updates et backports durant la construction de l'iso. Pratique pour inclure un noyau plus récent.
Ajoutez des paquets au fichier pour en profiter, sinon, cela ne sert à rien !
===–archive-areas main contrib non-free ===
Inclure les parties main, contrib et non-free des dépôts. Cela permet de mettre des firmwares non libre dans l'iso.
auto/config
Même remarque que précédemment…
===== lb boot : =====
C'est la commande qui s'occupe de gérer les options de boot pour le mode live de l'image iso. Vous n'avez pas l'utiliser directement, mais vous vous y toucher quand même dans le fichier lors de l'option
–bootappend-live. Tout paramètre qui suit peut être l'une des options de la commande
lb boot.
<code user>man live-boot</code>
Parmi les options utiles :
===toram===
Charge la totalité du système dans la RAM. Cela permet de pouvoir faire fonctionner le système même si le support (CD, clé USB) est retiré. Pratique non ?
===swap=true===
Pour utiliser les partitions swap détectées.
===== Les hooks =====
Les hooks sont des scripts qui s'effectuent à un moment précis d'une procédure dans un but de personnalisation.
Vos hooks doivent se trouver dans le répertoire
config/hooks (il est déjà rempli avec un certain nombre de hooks par défaut après l'exécution de
lb config.
1000-
Ils doivent :
- commencer par un numéro, afin qu'ils soient exécuter dans un ordre précis (commencez par puis
1001-…) ;
- porter un extension
.hook.chroot ou
.hook.binary'' selon l'étape à laquelle vous voulez qu'ils s'exécutent.