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 !
Les trois commandes que l'on a à utiliser sont :
lb config
lb build
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 :
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 archives seront dans cache/packages.binary
), puis grave l'iso dans le répertoire courant.
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.
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 :
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)
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).
Utiliser l'installateur standard (celui qui ne copie pas l'iso).
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
…
(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 !
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…
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 :
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 ?
Pour utiliser les partitions swap détectées.
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 :
1000-
puis 1001-
…) ;.hook.chroot
ou .hook.binary
selon l'étape à laquelle vous voulez qu'ils s'exécutent.