Table des matières

Live Debian-Facile : DIY

Cette page relate le processus complet de construction du live-df Ces sources permettent de construire les versions i386 (586/686-pae) et amd64.

Conseils :

need help ? arpinux@member.fsf.org

Introduction

Le live-df est construit sur 2 ressources :

Les paquets sont appelés pas le fichier /config/package-lists/livedf.list.chroot et peuvent être mis à jour après installation.
Les sources modifient 'en dur' la construction de l'image ISO, soit en intégrant des fichiers de configuration, soit en modifiant la construction grâce à certains scripts.

Principe du live-cd

Live-DF est distribué sous forme d'image ISO destinée à être gravée ou transférée sur une clé USB afin de créer un 'live-cd'.
un live-cd est constitué d'une image système (toute l'architecture embarquée d'une installation) compressée dans une archive de type “squashfs” et d'un programe de boot permettant de lancer ce système compressé.
ce programme de boot peut être accompagné d'un installeur, permettant ainsi de reporter le système compressé sur un disque dur. dans ce cas, c'est un live-cd-installable. Live-DF utilise live-build, le programme de construction des images disque Debian.

Principe du live-build

live-build est constitué d'une série de scripts destinés à construire une image live et/ou installable d'un système Debian.
ces scripts acceptent des arguments permettant de personnaliser l'image finale.
les arguments peuvent être réunis dans des scripts qui sont placés dans le dossier 'auto' des sources.

Processus de construction

… en très gros :D

Mise en place

Vous aurez besoin d'environ 8G d'espace libre sus votre système pour construire les images ISOs live-df

Installation des dépendances

Live-df se sert programme de construction live-build.
Pour ses sources, c'est le protocole git qui est utilisé :

apt-get update
apt-get install live-build live-manual live-tools git make

Clonage des sources

Pour utiliser et modifier les sources localement, vous devez les cloner sur votre système.

git clone https://git.framasoft.org/DFLinux/live-df.git

Vous obtenez alors un dossier live-df qui contient l'intégralité des sources du live-df.

Contenu des sources du build

liste des dossiers et fichiers des sources Live-DF
aka koya dedans… kesafula ??

/addons/ : dossiers et fichiers spécifiques selon le type d'ISO construite. ces données sont copiées dans les sources du build par le Makefile.

/auto/ : contient les scripts de construction et de nettoyage pour les commandes 'lb config', 'lb build' et 'lb clean'. ces scripts permettent de passer en arguments de façon plus claire, les options pour live-build.

/config/hooks : dossier contenant les scripts de modification en cours de build.

/config/includes.binary/isolinux/ : fichiers intégrés dans le dossier 'isolinux' du livecd.
les fichiers présents servent à la personnalisation du menu isolinux, le menu d'ouverture du liveDVD. Ils seront complétés lors du build par les fichiers tirés du dossier 'addons' et copiés par le Makefile.

/config/package-lists/ : dossier contenant les listes des paquets à installer.
si vous ajoutez une liste maliste.live, les paquets contenus seront présents dans la session live mais seront supprimés lors de l'installation.

/config/includes.chroot : tout ce qui sera placé dans ce dossier sera intégré dans le squashfs en respectant l'architecture et les permissions du système GNU/Linux de base.
ex, un fichier placé dans /config/includes.chroot/etc/issue appartiendra à root dans le squashfs et sera situé dans /etc/issue

! attention ! rien de ce qui sera placé dans ce dossier en 'dur' ne pourra être mis à jour depuis le gestionnaire de paquets : préférez la modification depuis les paquets.

/config/includes.chroot/etc/skel/
dossier de configuration de l'utilisateur par défaut (skel=skeleton). ce dossier sera détaillé plus tard.

/config/includes.chroot/usr/share/live-df/
ce dossier contient les cahiers du débutant et les petits outils ajoutés pour faciliter la prise en main.

/config/includes.chroot/etc/skel : la configuration de l'utilisateur par défaut.

les dossiers vides ne sont pas pris en compte par git, pour les afficher dans les sources, j'ai placé des fichiers cachés “.file” pour résoudre le soucis. Si vous avez une autre méthode, je suis preneur :)

Modification des sources

Cf le PDF HOWTO-livebuild.pdf intégré aux sources de live-df pour une vulgarisation de live-build et de la personnalisation d'un live-cd. FIXME : intégrer le howto livebuild sur DF

Construction de L'ISO

La construction se lance depuis le Makefile intégré à lancer en root.

nom.sh
# live-df Makefile <https://debian-facile.org/projets:live-df>
 
all: 
    @echo "Usage: as root"
    @echo "make 586         : build live-df 586"
    @echo "make 686         : build live-df 686-pae"
    @echo "make 64          : build live-df amd64"
    @echo "make clean       : clean up build directories"
    @echo "make cleanfull   : clean up cache directories"
 
586:
    @echo "building live-df 586"
    # copie du script principal du build
    cp auto/config586 auto/config
    # copie du menu de boot du live
    cp addons/live586.cfg config/includes.binary/isolinux/live.cfg
    # construction du live
    lb build
    # renommer les fichiers
    mkdir -p live-df-586
    mv live-image-i386.hybrid.iso live-df-586/live-df-586.iso
    mv chroot.packages.install live-df-586/live-df-586.pkgs
    mv *.log live-df-586/live-df-586.log
    md5sum live-df-586/live-df-586.iso > live-df-586/live-df-586.md5
 
686:
    @echo "building live-df 686-pae"
    # copie du script principal du build
    cp auto/config686 auto/config
    # copie du menu de boot du live
    cp addons/live686.cfg config/includes.binary/isolinux/live.cfg
    # construction du live
    lb build
    # renommer les fichiers
    mkdir -p live-df-686
    mv live-image-i386.hybrid.iso live-df-686/live-df-686-pae.iso
    mv chroot.packages.install live-df-686/live-df-686-pae.pkgs
    mv *.log live-df-686/live-df-686-pae.log
    md5sum live-df-686/live-df-686-pae.iso > live-df-686/live-df-686-pae.md5
 
64:
    @echo "building live-df amd64"
    # copie du script principal du build
    cp auto/config64 auto/config
    # copie du menu de boot du live
    cp addons/live64.cfg config/includes.binary/isolinux/live.cfg
    # construction du live
    lb build
    # renommer les fichiers
    mkdir -p live-df-64
    mv live-image-amd64.hybrid.iso live-df-64/live-df-amd64.iso
    mv chroot.packages.install live-df-64/live-df-amd64.pkgs
    mv *.log live-df-64/live-df-amd64.log
    md5sum live-df-64/live-df-amd64.iso > live-df-64/live-df-amd64.md5
 
clean:
    @echo "cleaning build directories"
    # nettoyage du script principal du build
    rm -f auto/config
    # nettoyage du menu de boot du live
    rm -f config/includes.binary/isolinux/live.cfg
    # nettoyage du live
    lb clean
 
cleanfull:
    @echo "cleaning cache directories"
    rm -R -f cache

Vous obtenez un dossier nommé selon la version construite avec l'ISOs, le log, la liste des paquets et la somme md5.
… et voilà :-)

des questions ? arpinux@member.fsf.org

1)
N'hésitez pas à * intervenir !