logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Ceci est une ancienne révision du document !


Live Build : aller plus loin

RTFM (Lire le fameux manuel)

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 !

live-build : les étapes

Les trois commandes que l'on a à utiliser sont :

  1. lb config
  2. lb build
  3. lb clean

Sauf que dans les faits, il se placent plus de choses que ça…

man live-build

Je vais détailler succinctement la procédure :

lb config

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.

lb build

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…

lb bootstrap

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é.

lb chroot

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.

lb binary

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 archives seront dans cache/packages.binary), puis grave l'iso dans le répertoire courant.

lb clean

Permet de nettoyer le tout depuis le début, ou bien seulement certaines parties. Ce sera détaillé plus bas.

Maintenant, regardons cela d'un peu plus près.

lb config

Il y a beaucoup de choses possibles avec ce script… Pour vous rendre compte de cela :

man lb_config

On peut ajouter les options en ligne de commande, comme ceci (à chaque fois qu'on lance cette commande, les options se cumulent) :

lb config --une-option un_parametre

Ou bien tout mettre dans le fichier auto/config ; une option sur une ligne, suivie d'un anti-slash, comme cela :

    --une-option un_parametre \

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 !)
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 live.list.chroot 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.
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, elle ne fait pas non plus partie de la procédure de lb build, mais vous vous y toucher quand même avec de l'option –bootappend-live de la commande lb config. Tout paramètre qui suit peut être l'une des options de la commande lb boot.

man live-boot

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.

lb clean

man lb_clean

Utilisée sans option, elle nettoie tout le travail de lb binary et lb chroot mais conserve tous le bootstrap et tous les caches. Dans la plupart des cas,c'est ce qu'il convient d'utiliser.

Veillez à relancer lb config après avoir utiliser lb clean où vous aurez des surprises…

Les options :

--binary

Ne supprime que le travail de lb binary. Si les modifications apportées ne sont pas relatives au le chroot, c'est ce qu'il faut utiliser.

--remove

Supprime tous sauf le bootstrap et les caches

--purge

Efface tout, même le bootstrap et les caches. On s'en sert pour repartir de 0.

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.
Ils doivent :

  1. commencer par un numéro, afin qu'ils soient exécuter dans un ordre précis (commencez par 1000- puis 1001-…) ;
  2. porter un extension .hook.chroot ou .hook.binary selon l'étape à laquelle vous voulez qu'ils s'exécutent.
utilisateurs/abdelqahar/tutos/live-build-aller-plus-loin.1463499863.txt.gz · Dernière modification: 17/05/2016 17:44 par AbdelQahar

Pied de page des forums

Propulsé par FluxBB