Questo capitolo contiene una panoramica dei tre principali strumenti utilizzati nella creazione dei sistemi Debian Live: live-build, live-boot e live-config.
live-build è una raccolta di script, chiamati anche "comandi", usati per creare sistemi Debian Live.
L'idea dietro live-build è di essere un'infrastruttura che utilizza una directory di configurazione per automatizzare totalmente e personalizzare tutti gli aspetti della creazione di un'immagine live.
Molti concetti sono simili a quelli negli strumenti del pacchetto Debian debhelper scritto da Joey Hess:
Al contrario di debhelper, live-build contiene uno strumento per generare una directory scheletro di configurazione, lb config, che può essere considerato simile a utilità come dh-make. Per maggiori informazioni su lb config si veda Il comando lb config.
Il resto di questa sezione tratta i tre comandi più importanti:
Come discusso in live-build, gli script che compongono live-build attingono la loro configurazione con il comando source da una singola directory chiamata config/. Dal momento che crearla a mano sarebbe dispendioso in termini di tempo e soggetto a errori, si può usare il comando lb config per creare la directory scheletro di configurazione.
L'esecuzione di lb config senza argomenti crea una sottodirectory di config/ popolata con alcune impostazioni predefinite:
$ lb config
P: Creating config tree
$ ls -l
total 8
drwxr-xr-x 3 user user 4096 Sep 7 13:02 auto
drwxr-xr-x 22 user user 4096 Sep 7 13:02 config
$ ls -l config/
total 104
-rw-r--r-- 1 user user 4197 Sep 7 13:02 binary
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_debian-installer
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_debian-installer-includes
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_grub
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_local-debs
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_local-hooks
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_local-includes
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_local-packageslists
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_local-udebs
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_rootfs
drwxr-xr-x 2 user user 4096 Sep 7 13:02 binary_syslinux
-rw-r--r-- 1 user user 2051 Sep 7 13:02 bootstrap
-rw-r--r-- 1 user user 1647 Sep 7 13:02 chroot
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_apt
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_local-hooks
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_local-includes
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_local-packages
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_local-packageslists
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_local-patches
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_local-preseed
drwxr-xr-x 2 user user 4096 Sep 7 13:02 chroot_sources
-rw-r--r-- 1 user user 2954 Sep 7 13:02 common
drwxr-xr-x 2 user user 4096 Sep 7 13:02 includes
-rw-r--r-- 1 user user 205 Sep 7 13:02 source
drwxr-xr-x 2 user user 4096 Sep 7 13:02 templates
L'uso di lb config senza argomenti è adatto ad utenti che necessitano di un'immagine di base o che intendono fornire in seguito una configurazione più completa tramite auto/config (per i dettagli vedere Gestire una configurazione).
Normalmente si vorranno specificare delle opzioni, ad esempio per includere nella propria configurazione l'elenco del pacchetto "gnome":
$ lb config -p gnome
È possibile specificare molte opzioni, come:
$ lb config --binary-images net --hostname live-machine --username live-user ...
Una lista completa delle opzioni è disponibile nel manuale di lb_config.
Il comando lb build legge la configurazione dalla directory config/ ed esegue ad un livello inferiore i comandi necessari a costruire il sistema live.
È compito del comando lb clean rimuovere le varie parti di una compilazione in modo che le successive possano iniziare da uno stato pulito. Per impostazione predefinita, vengono pulite le fasi chroot, binary e source ma la cache viene lasciatta intatta. Le fasi possono inoltre essere pulite singolarmente; ad esempio se sono state fatte modifiche alla sola fase binaria, si usi lb clean --binary prima di compilare un nuovo binario. Per la lista completa delle opzioni vedere la pagina di manuale di lb_clean.
live-boot è una raccolta di script che forniscono hook per initramfs-tools, utilizzato per generare un initramfs in grado di avviare sistemi live, come quelli creati da live-build. Questo include le ISO di Debian Live, archivi per l'avvio da rete e immagini per penne USB.
All'avvio cercherà supporti in sola lettura che contengano una directory "/live" dove sia presente un filesystem root (spesso un'immagine compressa come squashfs). Se trovata, creerà un ambiente scrivibile usando aufs, per avviarsi da sistemi simili a Debian.
Si possono trovare maggiori informazioni sui ramfs iniziali nel capitolo su initramfs del Debian Linux Kernel Handbook all'indirizzo ‹http://kernel-handbook.alioth.debian.org/›.
live-config è costituito da script eseguiti all'avvio dopo live-boot per configurare automaticamente il sistema live. Gestisce attività quali impostare l'hostname, localizzazione e fuso orario, creare l'utente live, inibire compiti automatizzati tramite cron ed eseguire il login automatico dell'utente live.