Esercitazione passo-passo per creare un CD live Debian con live-build
Costruire un CD live Debian o una USB live con live-build. Passeremo attraverso tre fasi: la creazione di un repository Git per tenere traccia di tutte le modifiche al codice, l'installazione di live-build sulla nostra distribuzione Debian e la configurazione e costruzione del file .iso.
Creare il repository Git
Possiamo usare un repository online, come GitLab.
Creare un nuovo progetto, ad esempio "Fabian-os", e un veloce Readme.md per la home del progetto.
È necessario aggiungere le chiavi pubbliche SSH alle impostazioni del progetto per avere pieno accesso al repository.
Clonare il repository. È possibile trovare il pulsante clona nella pagina iniziale con due opzioni: HTTPS o SSH.
In questo caso, useremo SSH per spingere i commit con il nuovo codice.
$ git clone https://github.com/undj/fabian-os.git
La directory del repository sarà il luogo in cui lavoreremo e memorizzeremo tutte le configurazioni live-build
.
Siccome il nostro nuovo repository Git non deve includere tutti i file scaricati da live-build, dobbiamo escluderli usando .gitignore
fornito nel nostro repository:
/cache/**
/live-image-*
/binario*/**
/chroot*/**
/.build*/**
/chroot.*
/build.log
/configurazione/sorgente
/configurazione/binario
/config/bootstrap
/config/chroot
/config/common
Installare live-build
Il pacchetto live-build
può essere trovato e installato direttamente dal repository Debian, in tutti i rami da Debian Stable a Sid.
Installare live-build
con:
$ sudo apt install live-build
Utilizzare live-build
Il pacchetto live-build
fornisce l'eseguibile lb
, usato per creare l'ambiente, costruire la distribuzione live e ripulirla.
Configurare l'ambiente con lb config
Configurare l'ambiente del nostro CD live all'interno della directory Git, usando lb config
:
$ sudo lb config
Questo comando scaricherà e creerà i file di configurazione necessari per costruire la distribuzione.
Possiamo aggiungere e spingere i file su Git per tenere traccia della prima configurazione predefinita.
$ git add .
$ git commit -m "prima configurazione"
$ git push
File di configurazione
La configurazione principale è auto/config
:
$ cat auto/config
#!/bin/sh
set -e
lb config noauto \
--mode debian \
--architetture amd64 \
--debian-installer live \
--archivio-aree "main contrib non-free" ´
--apt-indices false \
--memtest nessuno \
-d buster \
-compressione lzip \
--sistema live \
--backport true \
--bootappend-live "boot=live components locales=it_IT.UTF-8 keyboard-layouts=it splash" \
--mirror-bootstrap http://deb.debian.org/debian/ \
--mirror-binary http://deb.debian.org/debian/ \
"${@}"
Vediamo le definizioni nello script:
-d|--distribuzione CODENAME definisce la distribuzione del sistema live risultante -compressione bzip2|gzip|lzip|nessuno definisce il programma di compressione da usare per comprimere i tarball. --mode debian|progress|ubuntu definisce una modalità globale per caricare le impostazioni predefinite specifiche del progetto. -a|--architetture ARCHITETTURA definisce l'architettura dell'immagine da costruire. --archive-aree ARCHIVE_AREA|"ARCHIVE_AREAS" definisce quali aree dell'archivio dei pacchetti Debian devono essere usate per i mirror dei pacchetti Debian configurati. --sistema live|normale definisce se l'immagine di sistema risultante deve essere un sistema live o un normale sistema non live.
Il manuale completo si trova sul sito lb config Debian man pages.
Possiamo aggiungere i pacchetti preferiti creando un elenco nella directory package-list
:
$ nano config/package-lists/my.list.chroot
Eseguire gli script nel CD live chroot
aggiungendoli a questa directory:
$ nano config/hooks/live/my-chroot-script.sh
È possibile includere i file nella chroot
utilizzando lo stesso albero di directory desiderato nel CD live, aggiungendoli nella directory config/includes.chroot
Costruire il CD live Debian con lb build
Possiamo ora costruire il CD live con live-build. Questo scaricherà tutti i pacchetti dal mirror e creerà il file .iso
della distribuzione:
$ sudo lb build
Dopo il completamento del processo o per costruire una nuova versione, dobbiamo ripulire l'ambiente dalla precedente build:
$ sudo lb clean
Crediti finali
Questo lavoro è stato fatto in collaborazione con il Fablab Cagliari, per la creazione della distribuzione personalizzata, Fabian. Grazie mille per l'opportunità!
Vuoi parlare con un esperto? Visita la nostra pagina di consulenza Debian, analisi gratuita di 30 minuti!