Manuale di Debian Live

A proposito

1. A proposito di questo manuale

1.1 Per gli impazienti
1.2 Glossario
1.3 Autori
1.4 Contribuire a questo documento
1.4.1 Applicare le patch
1.4.2 Traduzione

2. A proposito del progetto Debian Live

2.1 Motivazioni
2.1.1 Cosa c'è di sbagliato con gli attuali sistemi live
2.1.2 Perché creare il proprio sistema live?
2.2 Filosofia
2.2.1 Solamente pacchetti ufficiali inalterati
2.2.2 Nessun pacchetto di configurazione per il sistema live
2.3 Contatti

Utente

3. Installazione

3.1 Requisiti
3.2 Installare live-build
3.2.1 Dal repository Debian
3.2.2 Da sorgenti
3.2.3 Da 'istantanee'
3.3 live-boot e live-config
3.3.1 Dal repository Debian
3.3.2 Da sorgenti
3.3.3 Da 'istantanee'

4. Nozioni di base

4.1 Che cos'è un sistema live?
4.2 Primi passi: creare un'immagine ISO
4.2.1 Provare un'immagine ISO con Qemu
4.2.2 Provare un'immagine ISO con virtualbox-ose
4.2.3 Masterizzare un'immagine ISO su un supporto fisico
4.3 Creare un'immagine USB/HDD
4.3.1 Copiare un'immagine USB/HDD su una penna USB
4.3.2 Provare un'immagine USB/HDD con Qemu
4.3.3 Usare lo spazio rimanente su una penna USB
4.4 Creare un'immagine netboot
4.4.1 Server DHCP
4.4.2 Server TFTP
4.4.3 Server NFS
4.4.4 Come provare una netboot
4.4.5 Qemu
4.4.6 VMWare Player

5. Panoramica degli strumenti

5.1 live-build
5.1.1 Il comando lb config
5.1.2 Il comando lb build
5.1.3 Il comando lb clean
5.2 Il pacchetto live-boot
5.3 Il pacchetto live-config

6. Gestire una configurazione

6.1 Utilizzare auto per gestire i cambiamenti di configurazione
6.2 Esempi di auto script

7. Panoramica sulla personalizzazione

7.1 Configurazione in fase di compilazione e di avvio
7.2 Fasi della creazione
7.3 Integrare la configurazione di lb con dei file
7.4 Personalizzazione dei compiti

8. Personalizzare l'installazione dei pacchetti

8.1 Sorgenti dei pacchetti
8.1.1 Distribuzione, le aree di archivio e le modalità
8.1.2 Mirror delle distribuzioni
8.1.3 Mirror delle distribuzioni usati in fase di compilazione
8.1.4 Mirror delle distribuzioni usate durante l'esecuzione
8.1.5 Repository addizionali
8.2 Scegliere i pacchetti da installare
8.2.1 Scegliere pochi pacchetti
8.2.2 Elenchi di pacchetti
8.2.3 Elenchi predefiniti di pacchetti
8.2.4 Elenchi locali dei pacchetti
8.2.5 Elenchi locali di pacchetti binari
8.2.6 Estendere un'elenco di pacchetti usando gli include
8.2.7 Usare condizioni all'interno degli elenchi di pacchetti
8.2.8 Task
8.2.9 Task per desktop e lingua
8.3 Installare pacchetti modificati o di terze parti
8.3.1 Utilizzare chroot_local-packages per installare pacchetti personalizzati
8.3.2 Utilizzare un repository APT per installare pacchetti personalizzati
8.3.3 Pacchetti personalizzati e APT
8.4 Configurare APT in fase di costruzione
8.4.1 Scegliere apt o aptitude
8.4.2 Utilizzare un proxy con APT
8.4.3 Modificare APT per risparmiare spazio
8.4.4 Passare opzioni ad apt o aptitude
8.4.5 APT pinning

9. Personalizzazione dei contenuti

9.1 Include
9.1.1 Live/chroot include locali
9.1.2 Include locali binari
9.1.3 Include binari
9.2 Hook
9.2.1 Live/chroot hook locali
9.2.2 Hook in fase di avvio
9.2.3 Hook binari locali
9.3 Preconfigurare le domande di Debconf

10. Personalizzare i comportamenti durante l'esecuzione

10.1 Personalizzare l'utente live
10.2 Personalizzare la localizzazione e la lingua
10.3 Persistenza
10.3.1 Persistenza completa
10.3.2 Mount automatico della home
10.3.3 Istantanee
10.3.4 Sottotesto persistente
10.3.5 Rimasterizzazione parziale

11. Personalizzare l'immagine binaria

11.1 Bootloader
11.2 Metadati ISO

12. Personalizzare il Debian Installer

12.1 Tipologie del Debian Installer
12.2 Personalizzare il Debian Installer con la preconfigurazione
12.3 Personalizzare il contenuto del Debian Installer

Progetto

13. Segnalare bug

13.1 Problemi noti
13.2 Ricostruire da zero
13.3 Usare pacchetti aggiornati
13.4 Raccogliere informazioni
13.5 Se possibile isolare il caso non andato a buon fine
13.6 Segnalare il bug del pacchetto giusto
13.6.1 Durante la compilazione mentre esegue il bootstrap
13.6.2 Durante la compilazione mentre installa i pacchetti
13.6.3 In fase di avvio
13.6.4 In fase di esecuzione
13.7 Fare la ricerca
13.8 Dove segnalare i bug

14. Lo stile nello scrivere codice

14.1 Compatibilità
14.2 Rientri
14.3 Ritorno a capo
14.4 Variabili
14.5 Varie

15. Procedure

15.1 Aggiornamenti degli udeb
15.2 Rilasci importanti
15.3 Rilasci minori
15.3.1 Modello per l'annuncio di un rilascio minore.

Esempi

16. Esempi

16.1 Usare gli esempi
16.2 Tutorial 1: un'immagine standard
16.3 Tutorial 2: servizio browser web
16.4 Tutorial 3: un'immagine personalizzata
16.4.1 Prima revisione
16.4.2 Seconda revisione
16.5 Un client Kiosk VNC
16.6 Un'immagine base per una chiavetta USB da 128M
16.7 Un desktop KDE localizzato e l'installer

Manuale di Debian Live

Utente

9. Personalizzazione dei contenuti

Questo capitolo tratta la personalizzazione dei contenuti del sistema live che va oltre la semplice scelta dei pacchetti da includere. Gli include permettono di aggiungere o sostituire file nell'immagine di Debian Live, gli hook permettono di eseguire comandi in fasi differenti della creazione e all'avvio, e la preconfigurazione permette di configurare i pacchetti quando vengono installati fornendo risposte alle domande di debconf.

9.1 Include

Anche se idealmente un sistema live Debian dovrebbe includere file forniti interamente dal pacchetti Debian non modificati, a volte è conveniente fornire o modificare parte del contenuto per mezzo di file. Utilizzando gli include, si può aggiungere (o sostituire) file arbitrari nell'immagine di Debian Live. Per usarli, live-build mette a disposizione tre meccanismi:

  • Include locali del chroot: permettono di aggiungere o sostituire file al file system chroot/Live. Vedere Live/chroot include locali per maggiori informazioni.
  • Include locali binari: permettono di aggiungere o sostituire file nell'immagine binaria. Vedere Include locali binari per maggiori informazioni
  • Include binari: permettono di aggiungere o sostituire specifici file Debian nell'immagine binaria, come le directory dei template e dei tool. Vedere Include binari per maggiori informazioni.
  • Si consulti il Glossario per ulteriori informazioni sulla distinzione tra immagini "Live" e "binarie".

    9.1.1 Live/chroot include locali

    Gli include locali del chroot possono essere usati per aggiungere o sostituire file nel filesystem chroot/Live in modo che possano essere utilizzati nel sistema live. Un utilizzo tipico è popolare la directory scheletro dell'utente (/etc/skel) che il sistema impiega per creare la home dell'utente. Un altro è quello di fornire file di configurazione che possono essere semplicemente aggiunti o sostituiti nell'immagine senza elaborazione; si veda Live/chroot hook locali se è necessaria l'elaborazione.

    Per includere i file si aggiungano semplicemente alla directory config/chroot_local-includes. Questa corrisponde alla directory root (/) del sistema live. Per esempio, per aggiungere un file /var/www/index.html nel sistema live, si usi:

       $ mkdir -p config/chroot_local-includes/var/www
       $ cp /path/to/my/index.html config/chroot_local-includes/var/www

    La configurazione avrà quindi il seguente schema:

       -- config
          [...]
           |-- chroot_local-includes
           |   `-- var
           |       `-- www
           |           `-- index.html
          [...]
           `-- templates

    Gli include locali del chroot vengono installati dopo l'installazione dei pacchetti in modo che tali file vengano in seguito sovrascitti.

    9.1.2 Include locali binari

    Si possono utilizzare include locali binari per inserire sul filesystem del supporto materiale come documentazione o video affinché sia immediatamente accessibile dopo l'inserimento dello stesso senza avviare il sistema live. Ciò funziona in modo simile agli include locali del chroot; supponendo che i file ~/video_demo.* siano video dimostrativi del sistema descritti da e collegati a una pagina HTML indice, basta copiare il materiale in #{config/binary_local-includes/} come segue:

       $ cp ~/video_demo.* config/binary_local-includes/

    Questi file appariranno nella directory principale del supporto live.

    9.1.3 Include binari

    live-build ha alcuni file standard (come la documentazione) inclusi nella configurazione predefinita di ogni supporto live. Ciò può essere disabilitato con:

       $ lb config --includes none

    In caso contrario il materiale verrà installato da live-build nella directory includes del filesystem in modo predefinito, oppure è possibile specificare un percorso alternativo con --includes.

    9.2 Hook

    Gli hook permettono di eseguire comandi nel chroot e nelle fasi binarie della creazione al fine di personalizzare l'immagine.

    9.2.1 Live/chroot hook locali

    Per eseguire comandi nella fase chroot, creare uno script hook contenente i comandi nella directory config/chroot_local-hooks. L'hook verrà eseguito nel chroot dopo che verrà applicata il resto della configurazione del chroot, ricordare quindi di garantire che la propria configurazione includa tutti i pacchetti e i file che l'hook necessita per funzionare. Vedere gli script d'esempio degli hook di chroot per i vari compiti di personalizzazione del chroot contenuti in /usr/share/live/build/examples/hooks da copiare o collegare nella propria configurazione.

    9.2.2 Hook in fase di avvio

    Per eseguire comandi all'avvio, è possibile fornire degli hook a live-config come spiegato nella sezione "Customization" del suo manuale. Controllare gli hook di live-config in /lib/live/config/ e notare i numeri sequenziali; fornire quindi i propri hook con una sequenza numerica appropriata, sia come include locali del chroot in config/chroot_local-includes/lib/live/config/, sia come pacchetto personalizzato come discusso in Installare pacchetti modificati o di terze parti.

    9.2.3 Hook binari locali

    Per eseguire comandi nella fase binaria, creare uno script hook che contenga i comandi in config/binary_local-hooks. L'hook verrà eseguito dopo tutti gli altri comandi binari, ma prima del binary_checksums, l'ultimo definitivo comando. I comandi nel proprio hook non vengono eseguiti nel chroot, perciò si faccia attenzione a non modificare nessun file al di fuori dell'albero di costruzione o si danneggerà il sistema! Vedere gli script d'esempio per gli hook binari per i vari compiti di personalizzazione dei binari in /usr/share/live/build/examples/hooks da copiare o collegare nella propria configurazione.

    9.3 Preconfigurare le domande di Debconf

    I file nella directory config/chroot_local-preseed sono considerati file di preconfigurazione di debconf e sono installati da live-build usando debconf-set-selections.

    Per ulteriori informazioni su debconf, vedere debconf(7) nel pacchetto debconf.