Manuale di Live Systems

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 Applying changes
1.4.2 Traduzione

2. About the Live Systems Project

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 da Debian "main", 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 Installare 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 Cos'è un sistema live?
4.2 Scaricare immagini precompilate
4.3 Utilizzare il web builder per le immagini live
4.3.1 Utilizzo del web builder e raccomandazioni
4.4 Primi passi: creare un'immagine ISO ibrida
4.5 Utilizzare un'immagine ISO live ibrida
4.5.1 Masterizzare un'immagine ISO su un supporto fisico
4.5.2 Copiare un'immagine ISO ibrida su una penna USB
4.5.3 Usare lo spazio rimanente su una penna USB
4.5.4 Avviare il supporto live
4.6 Utilizzare una macchina virtuale per le prove
4.6.1 Provare un'immagine ISO con QEMU
4.6.2 Testing an ISO image with VirtualBox
4.7 Creare e utilizzare un'immagine HDD
4.8 Creare un'immagine netboot
4.8.1 Server DHCP
4.8.2 Server TFTP
4.8.3 Server NFS
4.8.4 Come provare una netboot
4.8.5 Qemu

5. Panoramica degli strumenti

5.1 Il pacchetto 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 Gestire i cambiamenti di configurazione
6.1.1 Perché utilizzare gli script automatici? Cosa fanno?
6.1.2 Esempi d'uso di script automatici
6.2 Clonare una configurazione pubblicata tramite Git.

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 Elenchi di pacchetti
8.2.2 Usare metapacchetti
8.2.3 Elenchi locali dei pacchetti
8.2.4 Elenchi locali di pacchetti binari
8.2.5 Elenchi di pacchetti generati
8.2.6 Usare condizioni all'interno degli elenchi di pacchetti
8.2.7 Removing packages at install time
8.2.8 Task per desktop e lingua
8.2.9 Tipi e versioni del kernel
8.2.10 Kernel personalizzati
8.3 Installare pacchetti modificati o di terze parti
8.3.1 Utilizzare packages.chroot 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 compilazione
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.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 Il file persistence.conf
10.3.2 Utilizzare più di un'archiviazione persistente

11. Personalizzare l'immagine binaria

11.1 Bootloader
11.2 Metadati ISO

12. Personalizzare l'Installatore Debian

12.1 Tipologie dell'Installatore Debian
12.2 Personalizzare il Debian Installer con la preconfigurazione
12.3 Personalizzare il contenuto dell'Installatore Debian

Progetto

13. Contribuire al progetto

13.1 Applicare le modifiche

14. Segnalare bug

14.1 Problemi noti
14.2 Ricompilare da zero
14.3 Usare pacchetti aggiornati
14.4 Raccogliere informazioni
14.5 Se possibile isolare il caso non andato a buon fine
14.6 Segnalare il bug del pacchetto giusto
14.6.1 Durante la compilazione mentre esegue il bootstrap
14.6.2 Durante la compilazione mentre installa i pacchetti
14.6.3 In fase di avvio
14.6.4 In fase di esecuzione
14.7 Fare la ricerca
14.8 Dove segnalare i bug

15. Lo stile nello scrivere codice

15.1 Compatibilità
15.2 Rientri
15.3 Ritorno a capo
15.4 Variabili
15.5 Varie

16. Procedure

16.1 Rilasci importanti
16.2 Rilasci minori
16.2.1 Ultimo rilascio minore di un rilascio di Debian.
16.2.2 Modello per l'annuncio di un rilascio minore.

17. Repository Git

17.1 Gestire repository multipli

Esempi

18. Esempi

18.1 Usare gli esempi
18.2 Tutorial 1: un'immagine predefinita
18.3 Tutorial 2: servizio browser web
18.4 Tutorial 3: un'immagine personalizzata
18.4.1 Prima revisione
18.4.2 Seconda revisione
18.5 Un client Kiosk VNC
18.6 Un'immagine base per una chiavetta USB da 128MB
18.7 Un desktop GNOME localizzato e l'installatore

Appendice

19. Style guide

19.1 Guidelines for authors
19.1.1 Linguistic features
19.1.2 Procedures
19.2 Guidelines for translators
19.2.1 Translation hints

Metadata

Manuale di Live Systems

Utente

6. Gestire una configurazione

Questo capitolo spiega come gestire una configurazione per una live sin dalla creazione iniziale, attraverso le successive revisioni e rilasci sia del software live-build che della stessa immagine.

6.1 Gestire i cambiamenti di configurazione

Le configurazioni live sono di rado perfette al primo tentativo. Può andar bene passare le opzioni di lb config a riga di comando per eseguire una compilazione ma è tipico rivedere queste opzioni e compilare finché non si è soddisfatti. Per gestire le modifiche c'è bisogno di script automatici che assicurano che la propria configurazione sia coerente.

6.1.1 Perché utilizzare gli script automatici? Cosa fanno?

Il comando lb config immagazzina le opzioni ricevute e molte altre impostate su valori predefiniti in file nella directory config/*. Eseguendo nuovamente lb config le opzioni basate inizialmente sulle proprie non verranno cancellate. Per cui, ad esempio, eseguendo di nuovo lb config con un nuovo argomento per --distribution, ogni opzione che ne dipende impostata di default per la vecchia distribuzione potrebbe non funzionare più con la nuova. Questi file non sono destinati ad essere letti o modificati; salvano valori per oltre un centinaio di opzioni per cui nessuno, nemmeno voi, è in grado di vedere quali opzioni siano realmente state specificate. Infine, se si esegue lb config, si aggiorna live-build e si rinomina un'opzione, la directory config/* conterrà ancora le variabili con il vecchio nome e che non sono più valide.

Per queste ragioni gli script nella directory auto/* faciliteranno il lavoro; sono semplici wrapper ai comandi lb config, lb build e lb clean designati per aiutare a gestire la configurazione. Gli script in auto/config memorizzano i comandi di lb config con le opzioni desiderate, quelli in auto/clean rimuovono i file contenenti i valori delle variabili di configurazione, mentre gli script in auto/build tengono un build.log di ogni compilazione. Ognuno di questi script viene eseguito automaticamente ogni qualvolta si esegue il comando lb corrispondente; utilizzandoli la vostra configurazione sarà più semplice da leggere e verrà mantenuta coerente da una revisione all'altra. Inoltre sarà molto più facile identificare e sistemare le opzioni che necessitano di modifiche quando si aggiorna live-build dopo aver letto la documentazione aggiornata.

6.1.2 Esempi d'uso di script automatici

Per comodità live-build è fornito di esempi di script automatici da copiare e modificare. Inizializzare una nuova configurazione predefinita quindi copiare gli esempi in essa:

$ mkdir mylive && cd mylive && lb config
$ cp /usr/share/doc/live-build/examples/auto/* auto/

Modificare auto/config aggiungendo qualsiasi opzione vi serva, esempio:

#!/bin/sh
lb config noauto \
     --architectures i386 \
     --linux-flavours 686-pae \
     --binary-images hdd \
     --mirror-bootstrap http://ftp.ch.debian.org/debian/ \
     --mirror-binary http://ftp.ch.debian.org/debian/ \
     "${@}"

Ogni volta che verrà usato lb config, auto/config ripristinerà la configurazione in base a queste opzioni; quando si vogliono apportare modifiche basterà modificare le opzioni in questo file invece di passarle a lb config. Utilizzando lb clean, auto/clean pulirà i file in config/* insieme a qualsiasi altro creato dalla compilazione. Infine, quando si usa lb build, verrà scritto da auto/build un file di log della compilazione in build.log.

Nota: il parametro speciale noauto viene qui usato per impedire un'ulteriore chiamata di auto/config, impedendo quindi infinite chiamate ricorsive; assicurarsi di non rimuoverlo facendo modifiche. Quando si dividono comandi lunghi di lb config su più righe per agevolarne la leggibilità, non dimenticare il backslash (\) alla fine di ogni riga che continua sulla successiva, come mostrato poc'anzi nell'esempio di script.

6.2 Clonare una configurazione pubblicata tramite Git.

Use the lb config --config option to clone a Git repository that contains a live system configuration. If you would like to base your configuration on one maintained by the Live Systems Project, look at ‹http://live-systems.org/gitweb/› for the repository named live-images in the category Packages. This repository contains the configurations for the live systems prebuilt images.

Ad esempio, per creare un'immagine d'emergenza usare il repository live-images come segue:

$ mkdir live-images && cd live-images
$ lb config --config git://live-systems.org/git/live-images.git
$ cd images/rescue

Modificare auto/config e qualsiasi altro file presente in config necessario alle proprie esigenze. Ad esempio, le immagini non-free precompilate non ufficiali sono create semplicemente aggiungendo --archive-areas "main contrib non-free".

È possibile definire una scorciatoia nella configurazione di Git aggiungendo quanto segue al file ${HOME}/.gitconfig:

[url "git://live-systems.org/git/"]
         insteadOf = ldn:

Questo permette di usare ldn: ovunque serva specificare l'indirizzo di un repository git live-systems.org. Omettendo l'estensione facoltativa .git, inizializzare una nuova immagine usando questa configurazione è facile:

$ lb config --config ldn:live-images

Clonando l'intero repository live-images si ottengono configurazioni usate per svariate immagini. Se dopo aver terminato la prima si vuole creare un'immagine differente, basterà cambiare directory e opzionalmente fare di nuovo le modifiche necessarie alle proprie esigenze.

In ogni caso ricordarsi che ogni volta si dovrà creare l'immagine come utente root: lb build