live-build
afin de se faire une iso live aux petits oignons (sous Jessie).
live-build
est un ensemble de scripts qui permet de créer une image iso live personnalisée de Debian. Il n'est pas forcément évident de prendre cet outil en main, d'où le présent tuto !
Les avantages :
Alléchant, n'est-ce pas ?
On installe le jouet et sa doc (tant qu'à faire) :
apt-get install live-manual live-build
Pour consulter la doc, visitez le répertoire /usr/share/doc/live-manual/
, vous la trouverez dans les formats suivants :
Bon, allez, au boulot !
Le but à atteindre : obtenir un image iso légère pour faire de la navigation internet, avec votre profil iceweasel/firefox
live-build
fournit essentiellement 3 commandes principales :
lb config
qui permet de définir les options de configuration globales de l'iso live que vous voulez créer.lb build
qui se charge des différentes étapes de construction de ladite iso.lb clean
qui nettoie le tout avant de passer à une nouvelle iso.Pour simplifier les choses les mainteneurs du paquet nous fournissent des exemple tout prêts que l'on n'a plus qu'à copier et éditer en fonction de nos convenances.
On commence d'abord par créer un répertoire de travail dans lequel nous créons un premier répertoire de test où nous nous plaçons avec la commande cd :
cd ~
mkdir Live_Build_Work
cd Live_Build_Work
mkdir test_1
cd test_1
Maintenant qu'on est dedans, on va copier les 3 scripts dans un répertoire auto
:
mkdir auto
cp /usr/share/doc/live-build/examples/auto/* auto/
On édite maintenant le script config
de la manière suivante :
editor auto/config
editor
lance votre éditeur de texte en mode console par défaut. À priori, si vous ne l'avez jamais défini manuellement, il s'agit de nano.update-alternatives --config editor
Vous pouvez bien sur mettre directement nano
à la place de editor
, ou bien un autre éditeur de texte que vous maîtrisez (vim, emacs
…).
#!/bin/sh lb config noauto \ --architectures i386 \ --linux-flavours "586 686-pae" \ --linux-packages "linux-image" \ --ignore-system-defaults \ --bootappend-live "boot=live components autologin username=toto" "${@}"
–linux-flavours
et remplacez i386
par amd64
.
Cela nous donnera une iso live “passe-partout”, car en 32 bit avec deux noyaux :
Le nom de l'utilisateur sera toto
(vous pouvez éventuellement remplacer par autre chose si vous n'aimez pas ce prénom).
QWERTY
. Pour franciser tout ça, voir : les options de boot.
Afin d'installer les paquets de votre choix dans votre iso live il suffit d'éditer le fichier config/packages-list/live.list.chroot
ainsi :
editor config/packages-list/live.list.chroot
Et d'ajouter à la fin du fichier :
linux-image-586 linux-image-686-pae task-lxde-desktop icewesael-l10n-fr
linux-image-586
et linux-image-686-pae
par linux-image-amd64
.
Et si vous avez l'intention d'en mettre plusieurs, vous pouvez les répartir en plusieurs fichiers ayant comme extension : .list.chroot
.
Par exemple : bureautique.list.chroot
, system.list.chroot
…
Les fichiers de configuration d'un utilisateur contenus dans son répertoire personnel sont les fichiers cachés (commençant par un point : .
) ou bien se trouvant dans un répertoire caché (même chose).
Les fichiers de configurations de votre profile iceweasel/firefox se trouvent donc dans le répertoire caché .mozilla
.
Afin que l'utilisateur live (notre cher toto
) en profite il va falloir créer un répertoire /etc/skel
à l'intérieur du répertoire config/includes.chroot
et copier notre .mozilla
à l'intérieur.
mkdir -p config/includes.chroot/etc/skel
et
cp -r ~/.mozilla config/includes.chroot/etc/skel/
Ça y est, on a plus qu'à lancer la procédure de création (ça prendra environ assez longtemps…) :
lb build
Alors, c'était dur ?
Maintenant qu'on a découvert l'utilisation basique de live-build
, on va voir quelques possibilités supplémentaires.
Oui oui, ok, c'est bon, ça arrive, pas la peine de s'énerver… Tout d'abord, on nettoie :
lb clean
lb config
lb config
, il est bon de jeter un oeil à auto/config
pour voir si on à rien à changer…
Si vous utilisez une police, des icônes, un thème, ou encore des plugins particuliers, il faut penser à les ajouter au live.list.chroot
.
Par exemple, avec Xfce :
task-french-desktop task-xfce-desktop faenza-icon-theme fonts-cantarell murrine-themes xfce4-plugin-whiskermenu
Ajouter les applications de votre choix bien entendu.
Certaines application ont leur propre .bidule
. Cependant, un grand nombre d'entre elles, ainsi que la plupart des configurations relatives au bureau (y compris le fond d'écran) sont dans le répertoire .config
(vous pouvez allez jeter un coup d'oeil dedans si vous ne me croyez pas).
cp -r ~/.config config/includes.chroot/etc/skel/
Terminé !
lb build
C'est d'un facilité déconcertante : il suffit de les placer dans config/pacakges.chroot
. Pensez à vérifier tout de même que les dépendances seront satisfaites…
C'est simple : dans le script config
rajoutez la ligne :
--debian-installer live \
Vous verrez, lors de l'installation, après le partitionnement, au lieu de la traditionnelle installation du sytème de base puis du choix des logiciels, l'installateur copiera le contenu de l'iso.
C'est pas merveilleux ?!
/etc/skel/
! Ce qui signifie que le nouvel utilisateur aura accès à votre profil iceweasel/firefox contenant tous vots mots de passe (à moins que vous ne les ayez protégé par un mot de passe principal). Même chose pour votre profil chromium si vous utilisez ce navigateur.
Prenez donc soin de faire le ménage dans le répertoire /etc/skel
après avoir un installé votre système custom.
Aucun problème : dans le fichier config/build
, remplacez live-image
à la ligne 9 par : ma-super-debian-que-j-ai-fais-moi-et-qui-dechire-tout
.
Il y a beaucoup de chose à faire ici. Voyez plutôt :
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 par une ligne, suivie d'un anti-slash ; comme ceci :
--une-option un_parametre \
Parmi les options utiles :
–apt-source-archives false
lb build
! (Observer la sorite de votre terminal ou bien le fichier build.log
, et vous verrez…)–apt-recommends false
–debian-installer true
–distribution stretch
sid
…–security true
, –updates true
et –backports true
live.list.chroot
pour en profiter, sinon, cela ne sert à rien !–archive-areas main contrib non-free
L'option –bootappend-live
de la commande config à elle seule vous permets d'accéder à certains paramétrages très intéressants.
Voici quelques options utiles que vous pouvez ajouter à la suite dans votre fichier config
(tout sur une ligne) :
lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes
hostname=ordi
ordi
en l'occurence).toram
swap=true
Il faut savoir que tout fichier que vous placez dans le répertoire config/includes.chroot
se retrouvera à la racine du système de votre image iso. On peut donc importer, par exemple, un fichier de configuration global contenu dans /etc
, comme /etc/bash.bashrc
. Il faudra alors faire comme suit :
mkdir config/includes.chroot/etc
cp /etc/bash.bashrc /config/includes.chroot/etc/
/etc/skel
- celui que l'on a peuplé plus haut - sert de “squelette” lors la création de l'utilisateur live : tout ce qui a été déposé à cet emplacement se retrouvera dans son répertoire personnel. C'est pour cela qu'il fallait créer un répertoire /etc/skel
à l'intérieur de includes.chroot
. Il ne faut donc pas créer de répertoire /home/toto
comme on pourrait se l'imaginer, mais utiliser la méthode décrite plus haut.
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.Tutos sur d'autres sites (attention, certains ne fonctionnent plus sous jessie !) :