MANUALE DI DEBIAN LIVE
**********************
A PROPOSITO
===========
1. A PROPOSITO DI QUESTO MANUALE
--------------------------------
L'obiettivo di questo manuale è quello di servire da punto di accesso
centralizzato per tutta la documentazione relativa al progetto Debian Live; non
include documentazione rivolta agli utenti finali sul come usare un sistema
Debian Live, se non quella specifica per un sistema live.
Alcuni dei comandi menzionati nel testo devono essere eseguiti con i privilegi
di super-utente che possono essere ottenuti diventando utente root tramite su
oppure usando sudo. Per distinguere i comandi che possono essere eseguiti come
utente normale da quelli che necessitano dei privilegi di super-utente, i
comandi sono preceduti rispettivamente da $ o #. Questi simboli non fanno parte
del comando.
1.1 PER GLI IMPAZIENTI
......................
Sebbene crediamo che ogni cosa in questo manuale sia importante almeno per
alcuni dei nostri utenti, ci rendiamo conto che c'è tanto materiale da
trattare e che si potrebbe voler provare il software prima di entrare nei
dettagli. Pertanto, abbiamo messo a disposizione nella sezione Esempi tre
tutorial progettati per insegnarvi le basi della costruzione e della
personalizzazione delle immagini. Si legga innanzitutto Usare gli esempi,
seguito da Tutorial 1: un'immagine standard, Tutorial 2: un programma di
utilità web browser e, infine, Tutorial 3: un'immagine personalizzata. Alla
fine di queste esercitazioni, si avrà un assaggio di ciò che si può fare con
Debian Live. Ti invitiamo ad uno studio più approfondito del manuale, magari
leggendo in seguito Nozioni di base, sfogliando o saltando Creare un'immagine
netboot, e finendo con la lettura di Panoramica sulla personalizzazione e dei
capitoli che lo seguono. A questo punto, ci auguriamo che tu sia davvero
eccitato da ciò che si può fare con Debian Live e motivato a leggere il resto
del manuale, da cima a fondo.
1.2 GLOSSARIO
.............
* *Live system*: Un sistema operativo che può partire senza installazione su
disco rigido. I sistemi live non alterano né il sistema operativo locale (o i
sistemi operativi locali) né i file già installati sul disco rigido del
computer a meno che lo si faccia volontariamente. I sistemi live vengono
solitamente avviati da supporti quali CD, DVD o penne USB; alcuni possono anche
avviarsi via rete.
* *Debian Live*: Il sotto-progetto Debian che mantiene i pacchetti /live-boot/,
/live-build/, /live-config/ e /live-manual/.
* *Debian Live system*: Un sistema live che usa software proveniente dal
sistema operativo Debian e che può essere lanciato da CD, DVD, supporti USB,
via rete (tramite immagini netboot) e via internet (tramite il parametro di
boot fetch=URL).
* *Host system*: L'ambiente utilizzato per creare il sistema live.
* *Target system*: L'ambiente usato per eseguire il sistema live.
* */live-boot/*: Una raccolta di script usati per avviare sistemi live.
/live-boot/ era una parte di live-initramfs.
* */live-build/*: Una raccolta di script usati per creare sistemi Debian Live
personalizzati. /live-build/ era conosciuto come live-helper, ed ancora prima
come live-package.
* */live-config/*: Una raccolta di script usati per configurare un sistema live
durante il processo di inizializzazione. /live-config/ era una parte di
live-initramfs.
* */live-manual/*: Questo documento è inserito nel pacchetto chiamato
/live-manual/.
* *Debian Installer (d-i)*: Il sistema d'installazione ufficiale per la
distribuzione Debian.
* *Boot parameters*: Parametri che possono essere immessi nel prompt del boot
loader per modificare il comportamento del kernel o di /live-config/.
* *chroot*: Il programma chroot, chroot(8), rende possibile eseguire diverse
istanze dell'ambiente GNU/Linux su un singolo sistema simultaneamente senza
riavviare.
* *Binary image*: Un file che contiene il sistema live, come binary.iso o
binary.img.
* *Target distribution*: La distribuzione su cui sarà basato il sistema live.
Può differire dalla distribuzione presente sul proprio computer.
* *Squeeze/Wheezy/Sid (stable/testing/unstable)*: Nomi in codice per i rilasci
Debian; al momento *Squeeze* è l'attuale *stable* e *Wheezy* l'attuale
*testing*. *Sid* sarà sempre il sinonimo della *unstable*. In tutto il manuale
si tende ad usare i nomi in codice dei rilasci, in quanto questo è ciò che è
previsto dagli strumenti stessi.
La distribuzione *stable* contiene l'ultima distribuzione ufficialmente
rilasciata da Debian; la *testing* è il punto di raccolta per i pacchetti
della prossima *stable*. Uno dei principali vantaggi nell'uso di questa
distribuzione sta nell'avere software più recente rispetto alla *stable*. La
distribuzione *unstable* è dove avviene lo sviluppo attivo di Debian; viene
generalmente usata dagli sviluppatori o da coloro che amano l'azzardo.
1.3 AUTORI
..........
Lista degli autori (in ordine alfabetico):
* Ben Armstrong
* Brendan Sleight
* Chris Lamb
* Daniel Baumann
* Franklin Piat
* Jonas Stein
* Kai Hendry
* Marco Amadori
* Mathieu Geli
* Matthias Kirschner
* Richard Nelson
* Trent W. Buck
1.4 CONTRIBUIRE A QUESTO DOCUMENTO
..................................
Questo manuale è pensato come un progetto comunitario e ogni suggerimento e
contributo è benvenuto. Il modo migliore per apportare un contributo è di
inviarlo alla mailing list. Per maggiori informazioni si veda la sezione
Contatti.
Quando si sottopone un contributo, si prega di indicare chiaramente il
detentore del copyright e di includere la licenza. Si noti che, per essere
accettato, il contributo deve essere distribuito con la stessa licenza del
resto del documento, ovvero la GPL versione 3 o successiva.
I sorgenti di questo manuale sono mantenuti utilizzando il sistema di controllo
Git. Si può visionare la copia più recente eseguendo:
$ git clone git://live.debian.net/git/live-manual.git
Prima di sottoporre un contributo, si prega di visionare l'anteprima del
proprio lavoro. Per ottenere l'anteprima di /live-manual/, assicurarsi di avere
installati i pacchetti necessari per la sua compilazione eseguendo:
# apt-get install make po4a sisu-complete libnokogiri-ruby
Si può compilare il /live-manual/ dalla directory superiore del checkout di
Git eseguendo:
$ make build
Dato che occorre del tempo per compilare il manuale in tutte le lingue
supportate, può risultare conveniente farlo per una sola lingua, ad esempio
eseguendo:
$ make build LANGUAGES=en
1.4.1 APPLICARE LE PATCH
........................
Chiunque può eseguire il commit direttamente sul repository; tuttavia
chiediamo di inviare le modifiche più corpose in mailing list, per poterne
prima discuterne. Per eseguire il push sul repository, si deve seguire questa
procedura:
* Prelevare la chiave pubblica:
$ mkdir -p ~/.ssh/identity.d
$ wget http://live.debian.net/other/keys/gitosis@live.debian.net \
-O ~/.ssh/identity.d/gitosis@live.debian.net
$ wget http://live.debian.net/other/keys/gitosis@live.debian.net.pub \
-O ~/.ssh/identity.d/gitosis@live.debian.net.pub
$ chmod 0600 ~/.ssh/identity.d/gitosis@live.debian.net*
* Aggiungere la seguente sezione alla propria configurazione di openssh-client:
$ cat >> ~/.ssh/config << EOF
Host live.debian.net
Hostname live.debian.net
User gitosis
IdentityFile ~/.ssh/identity.d/gitosis@live.debian.net
EOF
* Scaricare tramite ssh un clone del manuale:
$ git clone gitosis@live.debian.net:/live-manual.git
* Dopo aver modificato i file in manual/en/, chiamare il target 'commit' nella
directory superiore per bonificare i file ed aggiornare i file di traduzione:
$ make commit
* Dopo la pulizia è possibile eseguire il commit delle modifiche. Si scrivano
messaggi costituiti da frasi in inglese esaurienti ed utili, inizianti con una
lettera maiuscola e terminanti con un punto. Solitamente cominceranno con la
forma 'Fixing/Adding/Removing/Correcting/Translating', ad esempio.
$ git commit -a -m "Adding a section on applying patches."
* Inviare il commit al server:
$ git push
1.4.2 TRADUZIONE
................
Per inviare una traduzione per una nuova lingua, seguire questi tre passi:
* Tradurre i file about_manual.ssi.pot, about_project.ssi.pot e
index.html.in.pot nella propria lingua con il proprio editor preferito (tipo
poedit). Inviare i file tradotti alla mailing list. Una volta che abbiamo
ricevuto il contributo, aggiungeremo la nuova lingua al manuale (fornendo i
file po) e la attiveremo per la procedura di compilazione automatica.
* Una volta che la nuova lingua è stata aggiunta, si può iniziare a tradurre
tutti i file po situati in manual/po/, nell'ordine che si preferisce.
* Non si dimentichi che è necessario dare un make commit per assicurarsi che i
manuali tradotti siano aggiornati partendo dai file po, prima di git commit -a
e git push.
2. A PROPOSITO DEL PROGETTO DEBIAN LIVE
---------------------------------------
2.1 MOTIVAZIONI
...............
2.1.1 COSA C'è DI SBAGLIATO CON GLI ATTUALI SISTEMI LIVE
.........................................................
Quando Debian Live iniziò erano disponibili svariati sistemi live basati su
Debian che tuttora stanno facendo un buon lavoro. Dal punto di vista di Debian
molti di essi hanno uno o più dei seguenti svantaggi:
* Sono progetti non ufficiali, sviluppati al di fuori di Debian.
* Mischiano differenti distribuzioni come ad esempio: *testing* e *unstable*.
* Supportano solamente i386.
* Modificano l'aspetto e il comportamento dei pacchetti snellendoli per
risparmiare spazio.
* Includono pacchetti non ufficiali.
* Forniscono un kernel con patch addizionali che non appartengono a Debian.
* Sono grandi e lenti a causa delle loro dimensioni e non adatti per operazioni
di salvataggio.
* Non sono disponibili in diversi formati come CD, DVD, penne USB e immagini
netboot.
2.1.2 PERCHé CREARE IL PROPRIO SISTEMA LIVE?
.............................................
Debian è il Sistema Operativo Universale: ha un sistema live ufficiale per
mostrare e rappresentare ufficialmente il vero, unico e solo sistema Debian con
i seguenti principali vantaggi:
* Sarebbe un sottoprogetto ufficiale Debian.
* Riflette lo stato (attuale) di una distribuzione.
* Gira su più architetture possibili.
* È costituito solo da pacchetti Debian non modificati.
* Non contiene nessun pacchetto non ufficiale.
* Usa un kernel Debian inalterato senza patch addizionali.
2.2 FILOSOFIA
.............
2.2.1 SOLAMENTE PACCHETTI UFFICIALI INALTERATI
..............................................
Verranno usati solo pacchetti ufficiali dei repository Debian della sezione
"main". La sezione non-free non è parte di Debian perciò non possono essere
affatto usati per le immagini ufficiali del sistema live.
Non verrà cambiato nessun pacchetto. Nel caso in cui sarà necessario cambiare
qualcosa sarà fatto in coordinazione con il maintainer del pacchetto Debian.
In via eccezionale i nostri pacchetti come /live-boot/, /live-build/ o
/live-config/ possono temporaneamente essere usati dal nostro repository per
ragioni di sviluppo (ad esempio per creare istantanee). Verranno caricati
regolarmente in Debian.
2.2.2 NESSUN PACCHETTO DI CONFIGURAZIONE PER IL SISTEMA LIVE
............................................................
In questa fase non saranno disponibili né esempi di installazione né
configurazioni alternative. Tutti i pacchetti vengono usati con la loro
configurazione predefinita così come accade con una regolare installazione di
Debian.
Nel caso in cui serva una configurazione predefinita differente, sarà fatto in
coordinazione con il maintainer del pacchetto in Debian.
Viene fornito un sistema per configurare i pacchetti tramite debconf nel lb
config (use --preseed FILE) consentendo di installare pacchetti configurati
secondo le proprie preferenze nell'immagine Debian Live personalizzata, ma per
le immagini ufficiali verrà usata la configurazione predefinita. Per ulteriori
informazioni si veda Panoramica sulla personalizzazione.
Eccezione: ci sono alcuni cambiamenti essenziali per far nascere un sistema
live (ad esempio configurare pam per permettere le password vuote). Queste
modifiche essenziali devono essere tenute al minimo possibile e saranno
eventualmente aggiunte ai repository Debian.
2.3 CONTATTI
............
* *Mailing list*: Il principale contatto del progetto è la mailing list
, si possono inviare email alla lista
direttamente a debian-live@lists.debian.org. Gli archivi sono disponibili
presso .
* *IRC*: Molti utenti e sviluppatori sono presenti sul canale #debian-live su
irc.debian.org (OFTC). Quando si pone una domanda su IRC, si prega di essere
pazienti nell'ottenere una risposta; se non si riceve risposta scrivere alla
mailing list.
* *BTS*: Il Debian Bug Tracking System (BTS) contiene i dettagli dei bug
riportati dagli utenti e dagli sviluppatori. A ciascun bug viene assegnato un
numero, e viene mantenuto finché non è segnato come risolto. Per ulteriori
informazioni si veda Segnalare bug.
* *Wiki*: Il wiki di Debian Live all'indirizzo
è un posto dove raccogliere informazioni,
discutere di tecnologie applicate e documenti sull'infrastruttura dei sistemi
Debian Live che vanno oltre lo scopo di questo manuale.
UTENTE
======
3. INSTALLAZIONE
----------------
3.1 REQUISITI
.............
Per costruire immagini Debian Live i requisiti di sistema sono davvero pochi:
* Accesso come super-utente (root)
* Una versione aggiornata di /live-build/
* Una shell POSIX-compliant, come /bash/ o /dash/.
* /debootstrap/ o /cdebootstrap/
* Linux 2.6.x
Si noti che usare Debian o una distribuzione derivata Debian non è richiesto -
/live-build/ funzionerà sostanzialmente su qualsiasi distribuzione che
soddisfi i requisiti di cui sopra.
3.2 INSTALLARE LIVE-BUILD
.........................
Si può installare /live-build/ in diversi modi:
* Dal repository Debian
* Da sorgenti
* Da istantanee
Se si sta usando Debian, il metodo raccomandato è di installare /live-build/
attraverso il repository Debian.
3.2.1 DAL REPOSITORY DEBIAN
...........................
Installare /live-build/ semplicemente come qualsiasi altro pacchetto:
# apt-get install live-build
o
# aptitude install live-build
3.2.2 DA SORGENTI
.................
/live-build/ è sviluppato usando il sistema di controllo versione Git. Sui
sistemi Debian è fornito dal pacchetto /git/. Per scaricare il codice
aggiornato, eseguire:
$ git clone git://live.debian.net/git/live-build.git
È possibile costruirsi ed installarsi il proprio pacchetto Debian eseguendo:
$ cd live-build
$ dpkg-buildpackage -rfakeroot -b -uc -us
$ cd ..
Si installino ora i file .deb appena generati ai quali si è interessati, ad
esempio:
# dpkg -i live-build_2.0.8-1_all.deb
Si può anche installare /live-build/ direttamente sul proprio sistema
eseguendo:
# make install
e disinstallarlo con:
# make uninstall
3.2.3 DA 'ISTANTANEE'
.....................
Se non si desidera generare o installare /live-build/ da sorgenti, è possibile
usare le istantanee. Sono costruite automaticamente dall'ultima versione
presente su Git e disponibili su .
3.3 LIVE-BOOT E LIVE-CONFIG
...........................
*Nota:* non è necessario installare /live-boot/ o /live-config/ sul proprio
sistema per creare sistemi Debian Live personalizzati. Tuttavia, farlo non
nuoce.
3.3.1 DAL REPOSITORY DEBIAN
...........................
Sia /live-boot/ che /live-config/ sono disponibili dai repository Debian come
per l' installazione di live-build.
3.3.2 DA SORGENTI
.................
Per utilizzare i sorgenti più recenti da Git si può seguire il procedimento
seguente. Assicurarsi di conoscere i termini menzionati nel Glossario.
* Scaricare i sorgenti di /live-boot/ e /live-config/
$ git clone git://live.debian.net/git/live-boot.git
$ git clone git://live.debian.net/git/live-config.git
Consultare la pagine man di /live-boot/ e /live-config/ per i dettagli sulla
personalizzazione se questa è il motivo per compilare questi pacchetti dai
sorgenti.
* Costruire un .deb di /live-boot/ e /live-config/
Bisogna costruire o sulla propria distribuzione target, oppure in un chroot
contenete la piattaforma target: significa che se il target è *Squeeze* allora
bisogna costruire su *Squeeze*.
Utilizzare un builder personale tipo /pbuilder/ o /sbuild/ se si deve costruire
live-boot per una distribuzione target diversa dal proprio sistema di build. Ad
esempio, per immagini live *Squeeze*, si generi live-boot in un chroot
*Squeeze*. Se la distribuzione target corrisponde con la distribuzione del
proprio sistema di build, si può costruire direttamente sul sistema di build
usando dpkg-buildpackage (fornito dal pacchetto /dpkg-dev/) :
$ cd live-boot
$ dpkg-buildpackage -b -uc -us
$ cd ../live-config
$ dpkg-buildpackage -b -uc -us
* Usare il .deb di /live-boot/ generato
Siccome /live-boot/ e /live-config/ sono installati dal sistema /live-build/,
installare il pacchetto nel sistema host non è sufficiente: occorre trattare
il .deb generato come un qualsiasi altro pacchetto su misura. Per maggiori
informazioni si veda Personalizzare l'installazione dei pacchetti. Si presti
particolare attenzione a Repository aggiuntivi.
3.3.3 DA 'ISTANTANEE'
.....................
Si può lasciare che /live-build/ usi automaticamente l'ultima istantanea di
/live-boot/ e /live-config/ configurando un repository esterno nella directory
di configurazione di /live-build/. Assumendo che si sia già creato un albero
di configurazione con lb config:
$ lb config --repository live.debian.net
4. NOZIONI DI BASE
------------------
Questo capitolo contiene una breve panoramica del processo di generazione e le
istruzioni per utilizzare i tre tipi di immagine più comunemente utilizzati.
La tipologia di immagine più versatile, iso-hybrid, può essere usata su una
macchina virtuale, supporto ottico o dispositivo di archiviazione portatile
USB. In alcuni casi particolari, la usb-hdd potrebbe essere più adatta per i
dispositivi USB. Il capitolo termina con le istruzioni per costruire e usare
un'immagine di tipo net, che è un poco più complessa a causa del setup
richiesto sul server. Si tratta di un argomento leggermente avanzato per chi
non ha familiarità con l'avvio da rete, ma è incluso qui perché, una volta
che il setup è stato fatto, è un modo molto comodo per collaudare e
distribuire immagini facendo il boot nella rete locale senza la seccatura di
doversi occupare dei mezzi di divulgazione dell'immagine.
4.1 CHE COS'è UN SISTEMA LIVE?
...............................
Per sistema live generalmente si intende un sistema operativo che può essere
avviato da un supporto rimovibile, come un CD-ROM o una chiavetta USB, oppure
da una rete, pronto per l'uso senza alcuna installazione su hard disk, con una
auto-configurazione fatta durante l'esecuzione (vedere Glossario).
Con Debian Live, si tratta di un sistema operativo Debian GNU/Linux, generato
per una delle architetture previste (attualmente amd64, i386, powerpc e sparc).
È costituito dalle seguenti parti:
* *Immagine del kernel Linux*, comunemente chiamata vmlinuz*
* *Initial RAM disk image (initrd)*: un disco RAM creato per il boot di Linux,
contenente i moduli potenzialmente necessari per montare l'immagine di sistema
e alcuni script per farlo.
* *Immagine di sistema*: l'immagine del filesystem del sistema operativo.
Normalmente è usato un filesystem compresso SquashFS, per minimizzare le
dimensioni dell'immagine Debian Live. Si noti che è in sola lettura. Dunque,
durante il boot il sistema Debian Live userà un disco RAM e il meccanismo
'unione' per attivare i file in scrittura all'interno del sistema in
esecuzione. Ad ogni modo, tutte le modifiche verranno perse con lo spegnimento
a meno che non si usi la persistenza opzionale (si veda Persistenza).
* *Bootloader*: una piccola porzione di codice predisposto per l'avvio dal
supporto scelto, che presenta un prompt o un menu per la selezione di
opzioni/configurazioni. Carica il kernel Linux ed il suo initrd da eseguire con
un filesystem associato. Possono essere usate diverse soluzioni, in base al
supporto di destinazione ed al formato del filesystem contenenti le componenti
precedentemente citate: isolinux per il boot da CD o DVD nel formato ISO9660,
syslinux per supporti HDD o USB che si avviano da una partizione VFAT, extlinux
per le partizioni ext/2/3/4 e btrfs, pxelinux per il netboot PXE, GRUB per
partizioni ext2/3/4, ecc.
È possibile usare /live-build/ per creare l'immagine di sistema secondo le
proprie specifiche, scegliere un kernel Linux, il suo initrd ed un bootloader
per avviarli, tutto in un unico formato che dipende dal mezzo (immagini
ISO9660, immagine disco, ecc.)
4.2 PRIMI PASSI: CREARE UN'IMMAGINE ISO
.......................................
La seguente sequenza di comandi di /live-build/ creerà un'immagine ISO ibrida
di base contenente soltanto il sistema Debian standard senza X.org. È adatta
per essere masterizzata su CD o DVD e anche per essere copiata su una penna USB
(come per Copiare un'immagine USB/HDD su una penna USB, specificando
l'estensione ".iso" dove è indicato ".img").
In primo luogo eseguire il comando lb config, il quale creerà una gerarchia
"config/" nella directory corrente e che verrà utilizzata da altri comandi:
$ lb config
Non passando alcun parametro a lb config, si indica che si intende utilizzare
le impostazione predefinite (vedere Il comando lb config).
Ora che si ha una gerarchia "config/" si può generare l'immagine con il
comando lb build:
# lb build
Questo processo può richiedere tempo, a seconda della velocità della
connessione di rete (vedere Il comando lb build).
4.2.1 PROVARE UN'IMMAGINE ISO CON QEMU
......................................
Collaudare una ISO è semplice:
# apt-get install qemu
$ qemu -cdrom binary.iso
4.2.2 PROVARE UN'IMMAGINE ISO CON VIRTUALBOX-OSE
................................................
Per provare la ISO con virtualbox-ose:
# apt-get install virtualbox-ose virtualbox-ose-dkms
$ virtualbox
Creare una nuova macchina virtuale, modificare le impostazione di archiviazione
in modo da usare binary.iso come dispositivo CD/DVD, ed avviare la macchina.
Nota: per sistemi live contenenti X.org che si vogliono provare con
virtualbox-ose, si può voler includere il pacchetto dei driver per X.org di
VirtualBox, virtualbox-ose-guest-x11, nella configurazione di /live-build/.
Altrimenti, la risoluzione è limitata a 800x600.
$ lb config --packages virtualbox-ose-guest-x11
4.2.3 MASTERIZZARE UN'IMMAGINE ISO SU UN SUPPORTO FISICO
........................................................
Masterizzare un'immagine ISO è semplice:
# apt-get install wodim
$ wodim binary.iso
4.3 CREARE UN'IMMAGINE USB/HDD
..............................
La seguente sequenza di comandi creerà un'immagine USB/HDD di base contenente
solo un sistema Debian standard senza X.org. È adatta per avviarsi da
chiavette USB, dischi rigidi USB, e da svariati altri dispositivi di
archiviazione portatili. In genere per questo scopo può essere usata
un'immagine ISO ibrida, ma se si ha un BIOS che non supporta le immagini
ibride, o si vuole usare lo spazio rimanente sul supporto per una partizione
persistente, allora occorre un'immagine USB/HDD.
Nota: se si è creata un'immagine ISO con gli esempi precedenti, occorre pulire
la directory di lavoro con il comando lb clean (vedere Il comando lb clean):
# lb clean --binary
Eseguire il comando lb config con i parametri atti a configurare la struttura
config/ per creare un'immagine di tipo USB/HDD:
$ lb config -b usb-hdd
Si crei ora l'immagine con il comando lb build:
# lb build
4.3.1 COPIARE UN'IMMAGINE USB/HDD SU UNA PENNA USB
..................................................
L'immagine binaria generata contiene una partizione VFAT e il bootloader
syslinux, pronti per essere scritti direttamente su una penna USB. Inserire una
chiavetta USB con una dimensione maggiore di quella di binary.img e digitare:
$ dd if=binary.img of=${USBSTICK}
dove ${USBSTICK} è il nome del device, come /dev/sdb (non una partizione come
/dev/sdb1!); si può trovare il nome corretto del device guardando l'output di
dmesg dopo aver inserito la chiavetta USB, o meglio ancora ls -l
/dev/disk/by-id.
*Questo sovrascriverà definitivamente qualsiasi dato in precedenza sulla
chiavetta!*
Nota: come disquisito in precedenza, questo stesso processo può essere usato
per immagini di tipo iso-hybrid (con suffisso -hybrid.iso), ma non per le
immagini di tipo iso.
4.3.2 PROVARE UN'IMMAGINE USB/HDD CON QEMU
..........................................
# apt-get install qemu
$ qemu -hda binary.img
4.3.3 USARE LO SPAZIO RIMANENTE SU UNA PENNA USB
................................................
Se si vuole usare lo spazio libero che rimane dopo l'installazione di
binary.img, si può usare uno strumento di partizionamento come gparted o
parted per creare una nuova partizione sulla penna. La prima partizione verrà
utilizzata dal sistema Debian Live.
# gparted ${USBSTICK}
Dopo aver creato la partizione, si deve creare su di essa un filesystem. Una
scelta possibile potrebbe essere ext4.
# mkfs.ext4 ${USBSTICK}
Usare FAT32 se si vuole usare questa partizione dati con Windows.
# mkfs.vfat -F 32
*Ricorda: ogni volta che si installa un nuovo file binary.img sulla penna,
tutti i dati sulla chiavetta saranno persi perché la tabella delle partizioni
viene sovrascritta con i contenuti dell'immagine.*
4.4 CREARE UN'IMMAGINE NETBOOT
..............................
La seguente sequenza di comandi creerà un'immagine netboot di base contenente
il sistema Debian standard senza X.org. È adatta per il boot tramite rete.
Nota: se qualcuno tra gli esempi precedenti è stato seguito, bisogna pulire la
directory di lavoro con il comando lb clean:
# lb clean --binary
Per configurare l'immagine per l'avvio da rete, eseguire il comando lb config
come segue:
$ lb config -b net --net-root-path "/srv/debian-live" --net-root-server "192.168.0.1"
Diversamente dalle immagini ISO e USB/HDD, il boot via rete non fornisce
un'immagine del filesytem al client, perciò i file devono essere forniti via
NFS. Le opzioni net-root-path e net-root-server specificano, rispettivamente,
il percorso e il server del server NFS dove l'immagine del filesystem sarà
situata all'avvio. Accertarsi che questi siano impostati su valori adeguati
alla propria rete.
Si crei ora l'immagine con il comando lb build:
# lb build
In un avvio tramite rete, il client esegue una piccola parte di software che
normalmente risiede sulla EPROM della scheda Ethernet. Questo programma invia
una richiesta DHCP per ottenere un indirizzo IP e le informazioni su cosa fare
in seguito. In genere il passo successivo è ottenere un bootloader di di
livello superiore attraverso il protocollo TFTP. Questi potrebbe essere
pxelinux, GRUB, o anche avviare direttamente un sistema operativo come Linux.
Per esempio, estraendo l'archivio generato binary-net.tar.gz nella directory
/srv/debian-live, si troverà l'immagine del filesystem in
live/filesystem.squashfs mentre il kernel, initrd ed il bootloader pxelinux in
tftpboot/debian-live/i386.
Per abilitare l'avvio tramite rete vanno ora configurati tre servizi:i server
DHCP, TFTP e NFS.
4.4.1 SERVER DHCP
.................
Si deve configurare il server DHCP della rete per essere sicuri di fornire un
indirizzo IP al sistema client che si avvia tramite rete, e notificare la
posizione del bootloader PXE.
Ecco un esempio, scritto per un server DHCP ISC isc-dhcp-server nel file di
configurazione /etc/dhcp/dhcpd.conf:
# /etc/dhcp/dhcpd.conf - configuration file for isc-dhcp-server
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.254;
next-server servername;
filename "pxelinux.0";
}
4.4.2 SERVER TFTP
.................
Fornisce al sistema il kernel e il ramdisk iniziale in fase di esecuzione.
Si installi il pacchetto tftpd-hpa, che mette a disposizione tutti i file
contenuti in una directory root, di solito /srv/tftp. Affinché si possa
disporre dei file contenuti in /srv/debian-live/tftpboot, eseguire il seguente
comando come utente root:
# dpkg-reconfigure -plow tftpd-hpa
e inserire la nuova directory del server tftp quando viene richiesto.
4.4.3 SERVER NFS
................
Una volta che il computer ospite ha scaricato e avviato un kernel Linux e
caricato il suo initrd, cercherà di montare l'immagine del filesystem Live
tramite un server NFS.
Bisogna installare il pacchetto nfs-kernel-server.
Quindi, rendere disponibile l'immagine del filesystem via NFS aggiungendo una
riga come la seguente in /etc/exports:
/srv/debian-live *(ro,async,no_root_squash,no_subtree_check)
e comunicare il nuovo export al server NFS con il seguente comando:
# exportfs -rv
Configurare questi tre servizi può essere un po' problematico. Serve un po' di
pazienza per farli funzionare assieme. Per ulteriori informazioni, si veda il
wiki syslinux o il manuale
del Debian Installer alla sezione per l'avvio TFTP da rete
. Ciò può essere
d'aiuto, considerato che il procedimento è molto simile.
4.4.4 COME PROVARE UNA NETBOOT
..............................
La creazione di immagini netboot è resa semplice dal potere di /live-build/,
ma provare le immagini su una macchina reale può essere davvero dispendioso in
termini di tempo.
Per semplificarsi la vita, si può usare la virtualizzazione. Ci sono due
soluzioni.
4.4.5 QEMU
..........
* Installare qemu, bridge-utils, sudo.
Modificare /etc/qemu-ifup:
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2
Procurarsi o compilare grub-floppy-netboot (su svn).
Lanciare qemu con "-net nic,vlan=0 -net tap,vlan=0,ifname=tun0"
4.4.6 VMWARE PLAYER
...................
* Installare VMWare Player (edizione "free as in beer")
* Creare una directory PXETester, e crearvi all'interno un file di testo
chiamato pxe.vwx
* Vi si copi dentro questo testo:
#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "4"
memsize = "512"
MemAllowAutoScaleDown = "FALSE"
ide0:0.present = "FALSE"
ide1:0.present = "FALSE"
floppy0.present = "FALSE"
sound.present = "FALSE"
tools.remindInstall = "FALSE"
ethernet0.present = "TRUE"
ethernet0.addressType = "generated"
displayName = "Test Boot PXE"
guestOS = "other"
ethernet0.generatedAddress = "00:0c:29:8d:71:3b"
uuid.location = "56 4d 83 72 5c c4 de 3f-ae 9e 07 91 1d 8d 71 3b"
uuid.bios = "56 4d 83 72 5c c4 de 3f-ae 9e 07 91 1d 8d 71 3b"
ethernet0.generatedAddressOffset = "0"
* Si può giocare con questo file di configurazione (ad esempio portando a 256
il limite della memoria)
* Fare doppio click su questo file (o avviare il player VMWare e selezionare
questo file).
* Se viene posta qualche strana domanda durante l'esecuzione premere il tasto
spazio...
5. PANORAMICA DEGLI STRUMENTI
-----------------------------
Questo capitolo contiene una panoramica dei tre principali strumenti utilizzati
nella creazione dei sistemi Debian Live: /live-build/, /live-boot/ e
/live-config/.
5.1 LIVE-BUILD
..............
/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:
* Gli script hanno una locazione centrale per configurare le loro operazioni,
in debhelper questa è la sottodirectory debian/ dell'albero di un pacchetto.
Ad esempio dh_install cercherà, tra gli altri, un file chiamato debian/install
per determinare quali file dovrebbero esistere in un certo pacchetto binario.
Allo stesso modo, /live-build/ salva la sua configurazione interamente in una
sottodirectory config/.
* Gli script sono indipendenti, vale a dire che è sempre sicuro eseguire ogni
comando.
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:
* *lb config*: responsabile dell'inizializzazione di una directory di
configurazione del sistema live. Si veda Il comando lb config per maggiori
informazioni.
* *lb build*: responsabile di iniziare la creazione di un sistema live. Si veda
Il comando lb per maggiori informazioni.
* *lb clean*: responsabile della rimozione di parti della creazione di un
sistema live. Si veda Il comando lb clean per maggiori informazioni.
5.1.1 IL COMANDO LB CONFIG
..........................
Come discusso in live-build, gli script che compongono /live-build/ attingono
la loro configurazione 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 e' disponibile nel manuale di lb_config.
5.1.2 IL COMANDO LB BUILD
.........................
Il comando lb build legge la configurazione dalla directory config/ ed esegue
ad un livello inferiore i comandi necessari a costruire il sistema live.
5.1.3 IL COMANDO LB CLEAN
.........................
Il compito del comando lb clean è di rimuovere diverse parti di una
compilazione affinché quelle successive possano iniziare in un ambiente
pulito.
5.2 IL PACCHETTO LIVE-BOOT
..........................
/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
.
5.3 IL PACCHETTO LIVE-CONFIG
............................
/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.
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 live.
6.1 UTILIZZARE AUTO PER GESTIRE I CAMBIAMENTI DI CONFIGURAZIONE
...............................................................
Le configurazioni live raramente sono perfette da riuscire al primo colpo.
Servono una serie di revisioni prima di essere soddisfatti. Comunque, possono
verificarsi delle incoerenze tra una revisione ed un'altra se non si presta
attenzione. Il problema principale è, una volta che ad una variabile è
assegnato un valore predefinito, tale valore non sarà ricalcolato da altre
variabili che possono cambiare in altre revisioni.
Per esempio, durante la messa a punto della prima distribuzione, molte
variabili 'dependent' sono date dalle caratteristiche della distribuzione.
Quindi, se in seguito si decide di cambiare distribuzione, quelle variabili
dipendenti continueranno a mantenere i vecchi valori i quali non sono più
appropriati
Un secondo relativo problema è che se si lancia lb config e si è aggiornato
/live-build/ ad una nuova versione il quale ha cambiato il nome di una o più
variabili, si può scoprire ciò solamente con una revisione manuale delle
variabili nei file config/*, bisogna che vengano risistemate, di nuovo, le
appropriate opzioni.
Tutto ciò potrebbe essere un fastidio terribile se non fosse per lo script
auto/*, una semplice alternativa ai comandi lb config, lb build e lb clean che
sono disegnati per aiutare nella gestione della configurazione. Basta creare un
semplice script auto/config che contenga il comando lb config con le opzioni
desiderate, e un auot/clean che rimuova i file contenenti i valori variabili di
configurazione, cosi ogni volta saranno eseguiti lb config lb clean. Questo
farà si che la configurazione sia sempre coerente da una revisione all'altra o
dal rilascio delle varie versioni del /live-build/.
6.2 ESEMPI DI AUTO SCRIPT
.........................
Usare esempi di auto script come il seguente come punto di partenza per una
nuova configurazione di /live-build/. Prendere nota che quando si chiama il
comando lb che l'auto script wraps, si deve specificare il parametro noauto per
essere sicuri che l'auto script chiamato di nuovo ricorsivamente. Non
dimenticare, inoltre, di rendere lo script eseguibile (es. chmod 755 auto/*).
auto/config
#!/bin/sh
lb config noauto \
--packages-lists "standard" \
"${@}"
auto/clean
#!/bin/sh
lb clean noauto "${@}"
rm -f config/binary config/bootstrap \
config/chroot config/common config/source
rm -f binary.log
auto/build
#!/bin/sh
lb build noauto "${@}" 2>&1 | tee binary.log
Facciamo un esempio di auto script per /live-build/ basato sull'esempio
precedente. Si possono copiare come punto di partenza.
$ cp /usr/share/live/build/examples/auto/* auto/
Modifica auto/config aggiungendo o togliendo le opzioni come meglio credi. Nel
precedente esempio --packages-lists standard è impostato il valore
predefinito.Cambiare questo in un valore appropriato per l'immagine ( o
cancellarlo se si desidera utilizzare un valore predefinito) e aggiungere
eventuali opzioni aggiuntive in continuazione delle righe che seguono.
7. PANORAMICA SULLA PERSONALIZZAZIONE
-------------------------------------
Questo capitolo mostra una panoramica dei vari metodi con i quali è possibile
personalizzare un sistema Debian Live.
7.1 CONFIGURAZIONE IN FASE DI COMPILAZIONE E DI AVVIO
.....................................................
La configurazione del sistema live è divisa in opzioni applicate in fase di
compilazione e al momento dell'avvio. Le opzioni di compilazione sono
ulteriormente divise in quelle che si verificano prima dell'avvio, applicate
dal pacchetto /live-boot/, e quelle dopo l'avvio, applicate da /live-config/.
Qualsiasi opzione in fase di avvio può essere modificata dall'utente
specificandola al prompt di avvio. L'immagine può inoltre essere costruita con
i parametri di avvio predefiniti in modo che quando tutti i valori predefiniti
sono adatti gli utenti possano avviare direttamente il sistema senza
specificare alcuna opzione. In particolare, l'argomento di lb --bootappend-live
è costituito da tutte le opzioni da riga di comando del kernel predefinite in
un sistema live, come persistenza dei dati, layout di tastiera o fuso orario.
Per gli esempi si veda Personalizzare localizzazione e lingua.
Le opzioni di configurazione in fase di compilazione sono descritte nel manuale
di lb config, mentre quelle in fase di avvio nel manuale di /live-boot/ e
/live-config/. Sebbene i pacchetti /live-boot/ e /live-config/ siano installati
nel sistema live che si sta costruendo si raccomanda, per un comodo riferimento
quando si lavora alla propria configurazione, di installarli anche sul sistema
che lo crea. Fare ciò risulta sicuro in quanto nessuno degli script contenuti
viene eseguito, a meno che il sistema sia configurato come sistema live.
7.2 FASI DELLA CREAZIONE
........................
Il processo di creazione è diviso in due fasi, con varie personalizzazioni
applicate in sequenza a ciascuna di esse. La prima consiste nell'*avvio*,
questa è la fase iniziale di popolamento della directory di chroot con i
pacchetti atti a creare un sistema Debian di base. Viene quindi seguita dalla
fase *chroot* che completa la costruzione della directory chroot e la popola
con tutti i pacchetti elencati nella configurazione insieme a qualsiasi altro
materiale; la maggior parte della personalizzazione dei contenuti avviene in
questa tappa. La parte finale della preparazione dell'immagine è la fase
*binaria* che genera un'immagine avviabile utilizzando i contenuti della
directory chroot per costruire il file system pricipale per il sistema live,
includere l'installatore e ogni altro materiale aggiuntivo sul supporto di
destinazione al di fuori del file system del sistema live. Una volta che
l'immagine è pronta viene creato, se abilitato, l'archivio dei sorgenti nella
fase *sorgenti*.
All'interno di ciascuna di queste fasi c'è una sequenza particolare in cui
vengono applicati i comandi, sono organizzati in modo da assicurare che le
personalizzazioni siano ragionevolmente stratificate. Ad esempio, nella fase
*chroot* i preseed vengono applicati prima che qualsiasi pacchetto sia
installato, i pacchetti vengono installati prima di qualsiasi file incluso
localmente o le patch sono applicate e gli hook eseguiti dopo che tutto il
materiale è a posto.
7.3 INTEGRARE LA CONFIGURAZIONE DI LB CON DEI FILE
..................................................
Anche se lb config crea una configurazione scheletrica nella directory config/,
per realizzare i propri obiettivi potrebbe essere necessario fornire dei file
aggiuntivi nelle sottodirectory. A seconda di dove vengono memorizzati i file
nella configurazione, possono essere copiati nel file system del sistema live o
nel file system dell'immagine binaria, o fornire configurazioni per la
creazione del sistema che sarebbe scomodo passare come opzioni da riga di
comando. Si possono includere cose come elenchi personalizzati dei pacchetti,
grafica personalizzata o script hook da eseguire sia al momento della
compilazione che in fase di avvio; incrementando quindi la notevole
flessibilità di debian-live con il proprio codice.
7.4 PERSONALIZZAZIONE DEI COMPITI
.................................
I capitoli seguenti sono costituiti dai tipi di compito personalizzato che gli
utenti eseguono solitamente: personalizzare l'installazione dei pacchetti,
personalizzare i contenuti e personalizzare localizzazione e lingua coprono
solo alcune delle cose che si potrebbero desiderare.
8. PERSONALIZZARE L'INSTALLAZIONE DEI PACCHETTI
-----------------------------------------------
Probabilmente la personalizzazione basilare di un sistema Debian Live è la
scelta dei pacchetti da includere nell'immagine. Questo capitolo vi guiderà
tra le varie opzioni in fase di costruzione per personalizzare l'installazione
dei pacchetti di /live-build/. Le ampie scelte che influenzano quali pacchetti
siano disponibili da installare nell'immagine sono le aree di distribuzione e
archivio. Per essere sicuri di avere una ragionevole velocità di scaricamento,
dovreste usare un mirror a voi vicino. Si possono inoltre aggiungere i propri
repository per pacchetti di backport, sperimentali o personalizzati, o
aggiungere i pacchetti direttamente come file. È possibile definire una
propria lista di pacchetti da includere, usarne una predefinita di
/live-build/, usare task di tasksel, o una combinazione di tutti e tre. Infine
una serie di opzioni fornisce un certo controllo su apt, o aptitude se si
preferisce, in fase di compilazione quando i pacchetti sono installati. Ciò
può tornare utile se si usa un proxy, se si vuole disabilitare l'installazione
dei pacchetti raccomandati per risparmiare spazio o controllare quali versioni
dei pacchetti vengono installate con il pinning, giusto per citare alcune
possibilità.
8.1 SORGENTI DEI PACCHETTI
..........................
8.1.1 DISTRIBUZIONE, LE AREE DI ARCHIVIO E LE MODALITà
.......................................................
La distribuzione che viene scelta ha un ampio impatto su quali pacchetti siano
disponibili per essere inclusi nell'immagine live. Specificare il nome in
codice, il predefinito per la versione *Squeeze* di /live-build/ è squeeze;
qualsiasi attuale distribuzione mantenuta negli archivi Debian può essere qui
specificata con il suo nome in codice. (Per ulteriori dettagli consultare il
Glossario). L'opzione --distribution non solo influenza la sorgente dei
pacchetti nell'archivio, ma indica a live-build di comportarsi secondo la
necessità per compilare ciascuna distribuzione supportata. Ad esempio se si
vuole costruire un rilascio *unstable*, *Sid*, specificare:
$ lb config --distribution sid
All'interno dell'archivio della distribuzione, le aree d'archivio sono
divisioni importanti. In Debian queste sono main, contrib e non-free; soltanto
main contiene il software che è parte ufficiale della distribuzione Debian,
perciò questa è la predefinita. Possono essere specificati uno o più valori:
$ lb config --archive-areas "main contrib"
Attraverso l'opzione --mode è disponibile un supporto sperimentale per alcune
derivate di Debian; per impostazione predefinita, questa opzione è impostata
su debian, anche se si sta costruendo un sistema diverso da Debian. Se si
specifica --mode ubuntu o --mode emdebian, saranno gestiti i nomi della
distribuzione e le aree di archivio per la derivata specificata e non quelli di
Debian. La modalità cambia anche il comportamento di /live-build/ per
adattarlo alle derivate.
*Nota:* I progetti per i quali sono state aggiunte tali modalità sono i
principali responsabili nel supportare gli utenti di queste opzioni. Il
progetto Debian Live, a sua volta, fornisce sostegno allo sviluppo solamente
sulla base dell'impegno migliore, sui feedback dei progetti derivati così come
non sviluppiamo o sosteniamo queste derivate.
8.1.2 MIRROR DELLE DISTRIBUZIONI
................................
L'archivio Debian è replicato attraverso una vasta rete di mirror in tutto il
mondo cosicché chiunque in ogni nazione può selezionare il mirror più vicino
per la migliore velocità di scaricamento. Ciascuna delle opzioni --mirror-*
determina quale mirror della distribuzione è usato nei vari stadi della
compilazione. Ricordando dalle Fasi della creazione che la fase di *avvio* è
quando il chroot è inizialmente popolato da debootstrap con un sistema
minimale e quella di *chroot* è quando viene creato il chroot usato per
costruire il file system del sistema live. Perciò per queste fasi vengono
usati i corrispondenti cambi di mirror, e in seguito, nella fase *binaria*
vengono usati i valori di --mirror-binary e --mirror-binary-security
sostituendo qualsiasi altro mirror usato nelle fasi iniziali.
8.1.3 MIRROR DELLE DISTRIBUZIONI USATI IN FASE DI COMPILAZIONE
..............................................................
Per impostare i mirror delle distribuzioni usati in fase di compilazione ad uno
locale, è sufficiente impostare --mirror-bootstrap e --mirror-chroot-security
come segue.
$ lb config --mirror-bootstrap http://localhost/debian/ \
--mirror-chroot-security http://localhost/debian-security/
Il mirror chroot, specificato da --mirror-chroot, è impostato al valore di
--mirror-bootstrap.
8.1.4 MIRROR DELLE DISTRIBUZIONI USATE DURANTE L'ESECUZIONE
...........................................................
Le opzioni --mirror-binary* determinano i mirror delle distribuzioni inseriti
nell'immagine binaria. Questi possono essere usati per installare pacchetti
aggiuntivi mentre il sistema live è in funzione. Le impostazioni predefinite
impiegano cdn.debian.net, un servizio che sceglie un mirror geograficamente
vicino basandosi sul numero IP dell'utente. Questo è una scelta conveniente
quando non si può pronosticare quale sarà il mirror migliore per tutti gli
utenti. Oppure si può specificare il proprio valore come mostrato nell'esempio
qui sotto. Un'immagine compilata con questa configurazione sarebbe adatta
solamente ad utenti di una rete dove sia raggiungibile il "mirror".
$ lb config --mirror-binary http://mirror/debian/ \
--mirror-binary-security http://mirror/debian-security/
8.1.5 REPOSITORY ADDIZIONALI
............................
Si possono aggiungere altri repository, ampliando così la scelta dei pacchetti
al di là di quelli disponibili nella distribuzione di destinazione. Questi
possono essere, per esempio, pacchetti di backport, sperimentali o
personalizzati. Per configurare repository aggiuntivi, creare i file
config/chroot_sources/vostro-repository.chroot, o
config/chroot_sources/vostro-repository.binary. Come per le opzioni --mirror-*,
queste controlleranno i repository usati nella fase *chroot* quando si compila
l'immagine, e nella fase *binary*, ad esempio per usarli quando il sistema live
è avviato.
Per esempio, config/chroot_sources/live.chroot permette di installare pacchetti
dal repository snapshot di debian live al momento della creazione del sistema
live.
deb http://live.debian.net/ sid-snapshots main contrib non-free
Se si aggiunge la stessa riga in config/chroot_sources/live.binary, il
repository verrà aggiunto alla directory /etc/apt/sources.list.d/ del sistema
live.
Se il file esiste, saranno prelevati automaticamente.
Bisogna inoltre inserire la chiave GPG usata per firmare il repository nei file
config/chroot_sources/vostro-repository.{binary,chroot}.gpg.
Nota: alcuni repository di pacchetti preconfigurati sono disponibili per una
facile selezione attraverso l'opzione --repository, per abilitare gli snapshot
live è sufficiente un semplice comando:
$ lb config --repository live.debian.net
8.2 SCEGLIERE I PACCHETTI DA INSTALLARE
.......................................
Ci sono diversi modi per scegliere quali pacchetti /live-build/ installerà
nell'immagine, coprendo una gamma di esigenze diverse. Si possono scegliere i
pacchetti singolarmente, con l'opzione --packages per un numero limitato, o da
un elenco per una quantità maggiore di pacchetti. È inoltre possibile
selezionare elenchi predefiniti più grandi o utilizzare i task di APT. E
infine inserire i file dei pacchetti nell'albero config/, che ben si adatta
alla alle prove di pacchetti nuovi o sperimentali prima che siano disponibili
in un repository.
8.2.1 SCEGLIERE POCHI PACCHETTI
...............................
Quando il numero dei pacchetti da aggiungere è esiguo è sufficiente
specificare --packages. Per esempio:
$ lb config --packages "package1 package2 package3"
Quando si specifica un pacchetto che non esiste, il comportamento di
/live-build/ è determinato dalla scelta delle utilità di APT. Per ulteriori
dettagli si veda Scegliere apt o aptitude.
Se si necessita di specificare un gran numero di pacchetti o si desidera
flessibilità su quali installare, usare gli elenchi dei pacchetti come
discusso nella prossima sezione, Elenchi di pacchetti.
8.2.2 ELENCHI DI PACCHETTI
..........................
Gli elenchi di pacchetti sono un potente mezzo per esprimere quali pacchetti
devono essere installati. La sintassi gestisce file inclusi e sezioni
condizionali rendendo semplice la creazione di elenchi da altri elenchi e
adattarli per l'uso in molteplici configurazioni. Si può usare un elenco
predefinito fornendo una selezione modulare dei pacchetti da ciascuno dei
principali ambienti desktop e alcuni elenchi per uso speciale, così come
elenchi standard sui quali vi si basano altri. È inoltre possibile fornire i
propri elenchi o usare una combinazione di entrambi.
8.2.3 ELENCHI PREDEFINITI DI PACCHETTI
......................................
Il modo più semplice per usare gli elenchi è di specificarne uno o più con
l'opzione --packages-lists. Per esempio:
$ lb config --packages-lists "gnome-core rescue"
In aggiunta a questi elenchi, /live-build/ ne gestisce quattro virtuali:
gnome-desktop, kde-desktop, lxde-desktop and xfce-desktop, ciascuno dei quali
fornisce una selezione più estesa di pacchetti che corrisponde ai predefiniti
dell'installatore Debian per ciascun ambiente desktop. Per ulteriori dettagli
si veda Task per desktop e lingua.
Nota: Le immagini pre-costruite di GNOME, KDE, LXDE e XFCE disponibili per
essere scaricate da sono costruite usando i
corrispondenti elenchi *-desktop virtuali.
Il percorso predefinito per i file elenco sul sistema è
/usr/share/live/build/lists/. Per determinare i pacchetti in un dato elenco, si
legga il file corrispondente, prestando attenzione ai file inclusi e
condizionali come descritto nella sezioni seguenti.
8.2.4 ELENCHI LOCALI DEI PACCHETTI
..................................
Gli elenchi si possono integrare o sostituire interamente usando quelli locali
dei pacchetti in config/chroot_local-packageslists/.
Per essere processati, questi elenchi devono avere il suffisso .list. I locali
sovrascrivono sempre quelli forniti con /live-build/, questo può causare
effetti indesiderati perciò si raccomanda di usare nomi univoci.
8.2.5 ELENCHI LOCALI DI PACCHETTI BINARI
........................................
Nel caso in cui si desideri includere dei pacchetti .deb alla directory pool/
della live (senza installarli sull'immagine) bisogna usare gli elenchi
utilizzando quelli locali dei pacchetti binari situati in
config/binary_local-packageslists/. Tale supporto può essere utilizzato come
immagine personalizzata di Debian per installazioni non in linea.
Per essere processate le liste dei pacchetti che si trovano nella directory
deve avere un suffisso .list.
8.2.6 ESTENDERE UN'ELENCO DI PACCHETTI USANDO GLI INCLUDE
.........................................................
Gli elenchi di pacchetti inclusi in /live-build/ fanno un notevole uso di
include. Far riferimento a questi nella directory /usr/share/live/build/lists/,
in quanto portano ottimi esempi su come scrivere i propri.
Per esempio, per creare un elenco che includa quello predefinito di gnome più
iceweasel, creare config/chroot_local-packageslists/mygnome.list con i seguenti
contenuti:
#include
iceweasel
8.2.7 USARE CONDIZIONI ALL'INTERNO DEGLI ELENCHI DI PACCHETTI
.............................................................
Ognuna delle variabili di configurazione di /live-build/ situate in config/*
(senza il prefisso LB_) possono essere utilizzate per istruzioni condizionali
nell'elenco dei pacchetti. In genere questo significa qualsiasi opzione di lb
config in maiuscolo e con trattini cambiati in trattini bassi; ma in pratica è
la sola ad influenzare la selezione dei pacchetti che abbia senso, come
DISTRIBUTION, ARCHITECTURE o ARCHIVE_AREAS.
Per esempio, per installare ia32-libs se è specificata --architecture amd64:
#if ARCHITECTURE amd64
ia32-libs
#endif
Si può verificare per ognuna di una serie di valori, ad esempio per installare
memtest86+ specificando sia --architecture i386 sia --architecture amd64:
#if ARCHITECTURE i386 amd64
memtest86+
#endif
È possibile provare altre variabili che contengano più di un valore, ad
esempio per installare vrms specificando sia da contrib sia da non-free tramite
--archive-areas:
#if ARCHIVE_AREAS contrib non-free
vrms
#endif
Una condizione può coinvolegere una direttiva #include:
#if ARCHITECTURE amd64
#include
#endif
Le condizioni nidificate non sono supportate.
8.2.8 TASK
..........
L'installatore Debian offre all'utente la scelta di vari elenchi di pacchetti
pre-selezionati, ognuno dei quali focalizzato su un particolare tipo di
sistema, o il tipo di attività per cui utilizzarlo, come "Graphical desktop
environment", "Mail server" o "Laptop". Questi elenchi sono chiamati "task" e
sono gestiti da APT atraverso il campo"Task:". In /live-build/ si possono
specificare uno o più task per mezzo dell'opzione --tasks, come nell'esempio
seguente.
$ lb config --tasks "mail-server file-server"
I task principali disponibili nell'installatore Debian possono essere elencati
nel sistema live con tasksel --list-tasks. I contenuti di ogni task, inclusi
quelli non inclusi in questo elenco, possono essere esaminati con tasksel
--task-packages.
8.2.9 TASK PER DESKTOP E LINGUA
...............................
I task per i desktop e la lingua sono un caso speciale. Nell'installatore
Debian, se il supporto è stato preparato per un particolare ambiente desktop,
il corrispondente task verrà automaticamente installato. Perciò ci sono i
task gnome-desktop, kde-desktop, lxde-desktop e xfce-desktop, nessuno dei quali
è offerto nel menu di tasksel. Allo stesso modo, non c'è nessuna voce nel
menu per i task delle lingue, ma la scelta della lingua dell'utente durante
l'installazione influenza la selezione dei corrispondenti task della lingua.
Perciò in /live-build/ a questi casi particolari è anche data particolare
considerazione, ma con tre differenze notevoli al momento in cui si scrive.
Primo, non è stata fatta ancora alcuna previsione sui task della lingua,
sebbene sia incluso un sottoinsieme di questi pacchetti specificando lb config
--language. Se servono questi task, i quali includono cose come caratteri
specifici per la lingua e pacchetti dei metodi di input, vanno specificati
nella configurazione. Per esempio:
$ lb config --tasks "japanese japanese-desktop japanese-gnome-desktop"
Secondo, /live-build/ gestisce gli elenchi *-desktop virtuali dei pacchetti per
ogni tipo di desktop menzionato sopra, il quale seleziona l'elenco predefinito
standard-x11, il corrispondente task *-desktop e tre task addizionali: desktop,
standard e laptop. Così per esempio, se si specifica --packages-lists
gnome-desktop, è l'equivalente di --packages /debian-installer-launcher/
--packages-lists standard-x11 --tasks "gnome-desktop desktop standard laptop".
Terzo, se viene selezionato uno qualsiasi dei task per i vari desktop, sia
esplicitamente con --tasks o implicitamente con --packages-lists, /live-build/
pre-imposterà il corrispondente valore desktop per l'installatore Debian (se
incluso) per garantire che segua le proprie regole per installare i vari tipi
di desktop.
*Nota:* Esiste anche l'opzione sperimentale --language con lo scopo di
sovrapporsi ai task della lingua. Se --language è specificato, per ogni lingua
per la quale sia nota la presenza di pacchetti *-l10n questi verranno
installati. Inoltre se uno dei modelli syslinux corrisponde alla lingua
trovata, questi saranno usati al posto di quello inglese predefinito. La
selezione dei pacchetti fatta con --language è un'approssimazione dei task
della lingua, in quanto richiede che l'elenco dei pacchetti da includere per
ogni lingua sia mantenuta all'interno di /live-build/, oltretutto i task della
lingua sono più completi e flessibili; per quanto l'aspetto di syslinux sia
comunque utile. Quindi utilizzando --bootloader syslinux, e se i modelli per la
lingua specificata esistono in /usr/share/live/build/templates/syslinux/ o in
config/templates/syslinux/, si può considerare questa opzione, eventualmente
in combinazione con i task per garantire che vengano installati tutti i
pacchetti interessati. Esempio:
$ lb config --language es
Anche così è limitato dal fatto che gestisce una sola lingua e un solo
bootloader. Pertanto, per tutte queste ragioni, il futuro di questa opzione è
in revisione, potrebbe essere sostituito con qualcosa di totalmente diverso nel
prossimo rilascio di /live-build/.
8.3 INSTALLARE PACCHETTI MODIFICATI O DI TERZE PARTI
....................................................
Nonostante sia contro la filosofia di Debian Live, a volte può essere
necessario creare un sistema live con versioni modificate dei pacchetti nel
repository Debian. Questo per modificare o gestire funzionalità aggiuntive,
lingue e marchi, o anche rimuovere elementi non desiderati da pacchetti
esistenti. Allo stesso modo, i pacchetti di "terze parti" possono essere
utilizzati per aggiungere funzionalità proprietarie o su misura.
Questa sezione non tratta la compilazione e il mantenimento di pacchetti
modificati. Può comunque essere interessante leggere "How to fork privately"
di Joachim Breitner:
La creazione di pacchetti su misura è esposta nella "Guida per il nuovo
Maintainer" all'indirizzo e altrove.
Ci sono due modi per installare pacchetti personalizzati:
* chroot_local-packages
* Utilizzare repository APT personalizzati
Usando chroot_local-packages è più semplice da ottenere e utile per una
personalizzazione "una tantum" ma ha una serie di svantaggi, mentre un
repository APT personalizzato è più laborioso da configurare.
8.3.1 UTILIZZARE CHROOT_LOCAL-PACKAGES PER INSTALLARE PACCHETTI PERSONALIZZATI
..............................................................................
Per installare un pacchetto personalizzato copiarlo nella directory
config/chroot_local-packages/; i pacchetti al suo interno verranno installati
automaticamente durante la creazione del sistema live, non è necessario
specificarli altrove.
I pacchetti *devono* essere nominati nel modo prescritto, un metodo semplice
per farlo è usare dpkg-name.
L'utilizzo di chroot_local-packages per l'installazione di pacchetti
personalizzati presenta degli svantaggi:
* non è possibile usare secure APT
* è necessario installare i pacchetti adeguati nella directory
config/chroot_local-packages/.
* non si presta a salvare le configurazioni di Debian Live nel controllo di
versione.
8.3.2 UTILIZZARE UN REPOSITORY APT PER INSTALLARE PACCHETTI PERSONALIZZATI
..........................................................................
A differenza di chroot_local-packages, quando si usa un repository APT
personalizzato è necessario assicurarsi di specificare altrove i pacchetti.
Per i dettagli si veda Scegliere i pacchetti da installare.
Sebbene creare un repository APT possa sembrare uno sforzo inutile,
l'infrastruttura può facilmente essere riutilizzata in un secondo momento per
offrire aggiornamenti dei pacchetti modificati.
8.3.3 PACCHETTI PERSONALIZZATI E APT
....................................
/live-build/ utilizza APT per installare tutti i pacchetti nel sistema live in
modo da ereditare i comportamenti di questo programma. Un esempio rilevante è
che (considerando una configurazione predefinita) dato un pacchetto disponibile
in due repository differenti con numeri di versione diversi, APT sceglie di
installare quello con il numero di versione più alto.
A causa di questo si può voler incrementare il numero della versione nei file
debian/changelog dei pacchetti personalizzati per accertare che la propria
versione avrà la precedenza sui repository Debian ufficiali. È anche
ottenibile modificando le preferenze del APT pinning del sistema live, si veda
APT pinning per maggiori informazioni.
8.4 CONFIGURARE APT IN FASE DI COSTRUZIONE
..........................................
APT è configurabile tramite una serie di opzioni applicate solo in fase di
costruzione (la configurazione di APT utilizzata nel sistema live in esecuzione
può essere configurata nel solito modo, ovvero includendo le impostazioni
appropriate attraverso config/chroot_local_includes/). Per un elenco completo,
cercare nel manuale di lb_config le opzioni che iniziano con apt.
8.4.1 SCEGLIERE APT O APTITUDE
..............................
Per installare pacchetti in fase di compilazione si può optare sia per apt sia
per aptitude, l'argomento --apt di lb config determina quale usare. Sceglie il
metodo implementando il comportamento preferito per l'installazione dei
pacchetti, la notevole differenza è come vengono gestiti quelli mancanti.
* apt: se viene specificato un pacchetto mancante, l'installazione avrà esito
negativo; questo è l'impostazine predefinita.
* aptitude: se viene specificato un pacchetto mancante, l'installazione avrà
successo.
8.4.2 UTILIZZARE UN PROXY CON APT
.................................
Una configurazione di APT spesso richiesta è di amministrare la creazione di
un'immagine dietro un proxy, lo si può specificare con le opzioni
--apt-ftp-proxy o --apt-http-proxy secondo necessità:
$ lb config --apt-http-proxy http://proxy/
8.4.3 MODIFICARE APT PER RISPARMIARE SPAZIO
...........................................
Si può aver bisogno di risparmiare dello spazio sul supporto dell'immagine, in
tal caso una o entrambe delle seguenti opzioni possono essere d'interesse.
È possibile non includere gli indici di APT con:
$ lb config --binary-indices false
Questo non influenzerà le voci in /etc/apt/sources.list, determina solo se
/var/lib/apt contiene o meno i file degli indici. Il compromesso è che APT
necessita di quegli indici per operar enel sistema live, perciò prima di
eseguire apt-cache search o apt-get install, per esempio, l'utente deve usare
prima apt-get update per crearli.
In caso si trovi che l'installazione dei pacchetti raccomandati appesantisca
troppo l'immagine, si può disabilitare l'opzione predefinita di APT con:
$ lb config --apt-recommends false
Qui il compromesso è dato dal fatto che se non si installano i raccomandati
per un certo pacchetto, ovvero "pacchetti che si trovano assieme a questo
eccetto in installazioni non usuali" (Debian Policy Manual, paragrafo 7.2),
saranno omessi alcuni di quelli realmente necessari. Si suggerisce pertanto di
verificare la differenza ottenuta nel proprio elenco di pacchetti disabilitando
i raccomandati (vedere il file binary.packages generato da lb build) e
includere nuovamente in esso quelli omessi che si desiderano installare. In
alternativa, se si desidera lasciare un modesto numero di raccomandati, li si
lasci abilitati e si assegni ad APT un pin di priorità negativo sui pacchetti
selezionati affinché non vengano installati, come spiegato in APT pinning.
8.4.4 PASSARE OPZIONI AD APT O APTITUDE
.......................................
Se non c'è un'opzione di lb config per modificare il comportamento di APT nel
modo desiderato, si usi --apt-options o --aptitude-options per passare opzioni
tramite il proprio strumento APT. Consultare il manuale di apt e aptitude per i
dettagli.
8.4.5 APT PINNING
.................
Si prega di leggere prima il manuale di apt_preferences(5). Il pinning può
essere configurato sia in fase di costruzione sia di esecuzione; per la prima
creare config/chroot_apt/preferences, per quest'ultima creare
config/chroot_local-includes/etc/apt/preferences.
Nell'ipotesi di creare un sistema live *Squeeze* e avendo la necessità di
installare tutti i pacchetti live-* da *Sid* in questa fase, bisogna aggiungere
*Sid* alle fonti di APT e farne il pinning affinché verranno installati da lì
solo i pacchetti voluti e per tutti gli altri attingerà dalla distribuzione
principale, *Squeeze*. Quanto segue servirà allo scopo:
$ echo "deb http://mirror/debian sid main" > config/chroot_sources/sid.chroot
$ cat >>config/chroot_apt/preferences <se
Per ottenere i file di localizzazione per il layout di tastiera tedesco e
svizzero-tedesco in X:
$ lb config --bootappend-live "locales=de_CH.UTF-8 keyboard-layouts=ch"
Si può ottenere un elenco di valori validi della tastiera per la console con
il seguente comando:
$ for i in $(find /usr/share/keymaps/ -iname "*kmap.gz"); \
do basename $i | head -c -9; echo; done | sort | less
In alternativa è possibile utilizzare il pacchetto console-setup, uno
strumento per configurare il layout della console tramite le definizioni di X
(XKB); si può dunque impostare il layout in modo più preciso con le variabili
keyboard-layouts, keyboard-variant, keyboard-options e keyboard-model;
/live-boot/ userà questi parametri anche per X. Ad esempio, per impostare un
layout French-Dvorak (chiamato Bepo) su un sistema francese con una tastiera
TypeMatrix, sia in console sia in X11:
$ lb config --bootappend-live \
"locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variant=bepo keyboard-model=tm2030usb"
10.3 PERSISTENZA
................
Uno dei paradigmi di un cd live è un sistema preinstallato eseguito da un
supporto in sola lettura, come un cdrom, dove le modifiche non sopravvivono ai
riavvii dell'hardware della macchina ospitante.
Un sistema Debian Live è una generalizzazione di questo paradigma e di
conseguenza oltre ai CD gestisce altri supporti; ma comunque, nel suo
comportamento predefinito, deve essere considerato in sola lettura e tutte i
cambiamenti fatti durante l'esecuzione del sistema verranno persi allo
spegnimento.
Persistenza è il nome comune per differenti tipi di soluzioni per salvare
alcune o tutte queste modifiche con i riavii. Per capire come funziona potrebbe
essere utile sapere che sebbene il sistema venga avviato ed eseguito da un
dispositivo in sola lettura, le modifiche a file e directory vengono scritte su
uno scrivibile, tipicamente un ram disk (tmpfs) e i dati sui ram disk non
sopravvivono ai riavii.
I dati immagazzinati su questo ramdisk andrebbero salvati un supporto
scrivibile persistente come un hard disk, una chiave USB, una condivisione di
rete o anche una sessione di un CD/DVD riscrivibile multisessione. Tutti questi
supporti sono gestiti in Debian Live in modi differenti, e tutti tranne
l'ultimo richiedono un parametro d'avvio speciale da specificare all'avvio:
persistent.
10.3.1 PERSISTENZA COMPLETA
...........................
Con "persistenza completa" si intende l'uso di una partizione scrivibile invece
di un filesystem temporaneo (tmpfs) per salvare le modifiche al supporto in
sola lettura (con il sistema COW, copy-on-write). Per utilizzare questa
caratteristica, una partizione con un filesystem scrivibile e supportato ed
etichettata come "live-rw" deve essere collegata al sistema in fase di avvio e
il sistema va fatto partire con il parametro "persistent". Questa partizione
potrebbe essere di tipo ext2 su un hard disk o una penna usb creata ad esempio
con:
# mkfs.ext2 -L live-rw /dev/sdb1
Se si possiede già una partizione sul dispositivo basta solo cambiare
l'etichetta con una delle seguenti:
# tune2fs -L live-rw /dev/sdb1 # for ext2,3,4 filesystems
# dosfslabel /dev/sdb1 live-rw # for a fat filesystem
Ma siccome gli utenti dei sistemi live non hanno sempre la possibilità di
utilizzare una partizione su disco rigido, e considerando che la maggior parte
delle chiavi USB hanno scarse velocità di scrittura, la persistenza "completa"
può anche essere usata con dei file immagine, è possibile creare un file che
rappresenta una partizione e inserire questo file immagine anche su una
partizione NTFS di un sistema operativo estraneo, qualcosa come:
$ dd if=/dev/null of=live-rw bs=1G seek=1 # for a 1GB sized image file
$ /sbin/mkfs.ext2 -F live-rw
Quindi copiare il file live-rw su una partizione scrivibile e riavviare con il
parametro d'avvio "persistent".
10.3.2 MOUNT AUTOMATICO DELLA HOME
..................................
Se durante l'avvio viene trovata una partizione (filesystem) su file immagine o
una partizione etichettata come home-rw, questa verrà montata direttamente
come /home, permettendo quindi la persistenza dei file che appartengono ad
esempio all'utente predefinito. Può essere unita alla persistenza completa.
10.3.3 ISTANTANEE
.................
Le istantanee sono raccolte di file e directory che non vengono montate durante
l'esecuzione ma copiate all'avvio da un dispositivo persistente al sistema
(tmpfs) e risincronizzate al riavvio e spegnimento. Il contenuto di
un'istantanea può risiedere su una partizione o file immagine (come i tipi
menzionati poc'anzi) etichettati come live-sn, ma sotto forma di un semplice
archivio cpio nominato live-sn.cpio.gz. Come sopra, all'avvio, i device a
blocchi collegati al sistema vengono analizzati alla ricerca di una partizione
o file così nominati. Un'interruzione di corrente durante l'esecuzione
potrebbe portare ad una perdita di dati, per cui si può usare uno strumento
che richiama live-snapshot --refresh per sincronizzare i cambiamenti
importanti. Giacché non scrive continuamente sul dispositivo, questo tipo di
persistenza è il sistema più comodo e veloce per dispositivi basati su
memoria flash.
Esiste anche un'istantanea della /home con etichetta home-sn.*; funziona come
la principale ma viene applicata solo ad /home.
Attualmente le istantanee non possono gestire la cancellazione dei file, al
contrario della persistenza completa e il mount automatico della home.
10.3.4 SOTTOTESTO PERSISTENTE
.............................
Se un utente avesse bisogno di archiviazioni multiple dello stesso tipo per
differenti posti o per test, come live-rw-casa e live-rw-lavoro, il parametro
d'avvio persistent-subtext usato in congiunzione con persistent permetterà
supporti persistenti multipli ma univoci. Un esempio potrebbe essere un utente
che vuole usare una partizione etichettata come live-sn-sottotesto, userebbe:
persistent persistent-subtext=sottotesto.
10.3.5 RIMASTERIZZAZIONE PARZIALE
.................................
Le modifiche in fase di esecuzione del tmpfs possono essere incluse in uno
squashfs usando live-snapshot e aggiunte al cd per rimasterizzare la iso nel
caso di un cd riscrivibile o aggiunto ad una sessione di un cd/dvd(rw)
multisessione; /live-boot/ monta tutti i filesystem /live in ordine o con il
modulo del parametro d'avvio.
11. PERSONALIZZARE L'IMMAGINE BINARIA
-------------------------------------
11.1 BOOTLOADER
...............
/live-build/ usa syslinux come bootloader predefinito, il quale è configurato
per restare in pausa continua sulla schermata d'avvio. Per cambiare questo
comportamento, si passi --syslinux-timeout TIMEOUT a lb config. Questo valore
è espresso in secondi, 0 (zero) disabilita completamente il tempo di attesa.
Per maggiori informazioni vedere syslinux(1).
11.2 METADATI ISO
.................
Quando si crea un'immagine binaria ISO9660, si possono usare le seguenti
opzioni per aggiungere vari metadati testuali. Questo può aiutare a
identificare facilmente la versione o la configurazione di un'immagine senza
avviarla.
* LB_ISO_APPLICATION/--iso-application NAME: descrive l'applicazione che sarà
nell'immagine. La lunghezza massima per questo campo è di 128 caratteri.
* LB_ISO_PREPARER/--iso-preparer NAME: descrive il costruttore dell'mmagine,
solitamente con alcuni dettagli per contattarlo. L'impostazione predefinita è
la versione di /live-build/ che si sta usando, il quale potrà essere utile in
seguito per il debugging. La lunghezza massima per questo campo è di 128
caratteri.
* LB_ISO_PUBLISHER/--iso-publisher NAME: descrive l'editore dell'immagine,
solitamente con qualche dettaglio per contattarlo. La lunghezza massima
lunghezza per questo campo è di 128 caratteri.
* LB_ISO_VOLUME/--iso-volume NAME: specifica l'ID del volume dell'immagine.
Questa è utilizzata come etichetta visibile all'utente su alcune piattaforme,
come Windows e Apple Mac OS. La lunghezza massima per questo campo è di 128
caratteri.
12. PERSONALIZZARE IL DEBIAN INSTALLER
--------------------------------------
Le immagini del sistema Debian Live possono essere integrate nel Debian
Installer. Ci sono differenti tipi d'installazione che variano in cosa viene
incluso e come agisce l'installatore.
In questa sezione si presti attenzione all'uso delle lettere maiuscole quando
si fa riferimento al "Debian Installer" - quando usato ci si riferisce
all'installatore ufficiale Debian, niente altro. Spesso è abbreviato come
"d-i".
12.1 TIPOLOGIE DEL DEBIAN INSTALLER
...................................
I tre principali tipi dell'installer sono:
*Debian Installer "normale"*: questa è un'immagine Debian Live con un kernel e
un initrd separati i quali (quando viene selezionato da un appropriato
bootloader) lancia un'istanza standard del Debian Installer, così come quando
si scarica un'immagine di Debian e la si avvia. Le immagini che contengono un
sistema live e un installatore indipendenti sono spesso definite "immagini
combinate".
In queste immagini, Debian è installata prendendo e installando pacchetti .deb
usando ⌠debootstrap⌡# o cdebootstrap da supporti locali o dalla rete,
risultante in un sistema Debian standard che viene installato sul disco rigido.
L'intero processo può essere preimpostato e personalizzato in diversi modi;
per ulteriori informazioni si vedano le corrispondenti pagine del manuale del
Debian Installer. Una volta che si ha un file preimpostato che funzioni,
/live-build/ può inserirlo automaticamente nell'immagine e abilitarlo.
*Debian Installer "live"*: Questa è un'immagine Debian Live con un kernel ed
un initrd separato (quando selezionato dall'appropriato bootloader) lanciata in
un'instanza del Debian Installer.
L'installazione procederà nello stesso modo di un'installazione "Regolare"
come descritto sopra, ma allo stadio attuale dell'installazione del pacchetto,
invece di usare debootstrap per prelevare e installare i pacchetti, l'immagine
del filesystem live viene copiata sulla destinazione. Questo si ottiene con uno
speciale udeb chiamato /live-installer/.
Dopo questa fase, il Debian Installer continua normalmente, installando e
configurando elementi come bootloader e utenti locali, ecc.
Si noti: per supportare entrambi le voci dell'installer live o normale nel
bootloader sullo stesso media, si deve disabilitare il /live-installer/ dalla
preconfigurazione #{live-installer/enable=false}.
*Debian Installer "Desktop"*: indipendentemente dal tipo del Debian Installer
incluso, d-i può essere lanciato cliccando un'icona sul desktop, Questo è
molto semplice in alcune situazioni. Per poterne usufruire deve essere incluso
il pacchetto /debian-installer-launcher/.
Si noti che /live-build/ non include il Debian Installer nell'immagine in modo
predefinito, bisogna che sia espressamente abilitato con lb config.Inoltre,
affinché l'installatore "Desktop" funzioni, il kernel del sistema live deve
corrispondere a quello usato dal d-i per l'architettura specificata. Per
esempio:
$ lb config --architecture i386 --linux-flavours 486 \
--debian-installer live --packages debian-installer-launcher
12.2 PERSONALIZZARE IL DEBIAN INSTALLER CON LA PRECONFIGURAZIONE
................................................................
Come descritto nell'appendice B del manuale del Debian Installer all'indirizzo
, "La preconfigurazione
fornisce un modo per impostare le risposte alle domande poste durante il
processo d'installazione senza la necessità di inserirle manualmente. Ciò
permette di automatizzare totalmente molti tipi di installazione offrendo anche
alcune caratteristiche normalmente non disponibili." Questo tipo di
personalizzazione è compiuta in modo ottimale con /live-build/ mettendo la
configurazione in un file preseed.cfg incluso in
config/binary_debian-installer/. Ad esempio per preconfigurare l'impostazione
della localizzazione su en_US:
$ echo "d-i debian-installer/locale string en_US" \
>> config/binary_debian-installer/preseed.cfg
12.3 PERSONALIZZARE IL CONTENUTO DEL DEBIAN INSTALLER
.....................................................
Si può voler includere pacchetti udeb compilati localmente come componenti del
d-i per scopi di sperimentazione o debug; per includerli nell'immagine
inserirli in config/binary_local-udebs/. I file e le directory aggiuntivi o di
rimpiazzo si possono includere nell'initrd dell'installatore in maniera simile
agli Include locali del Live/chroot, inserendo il materiale in
config/binary_debian-installer-includes/.
PROGETTO
========
13. SEGNALARE BUG
-----------------
Debian Live è lungi dall'essere perfetta, ma con il vostro aiuto vogliamo
avvicinarci il più possibile a questo livello. Non esitare a segnalare un bug:
è meglio compilare un rapporto due volte che mai. Questo capitolo include
alcune raccomandazioni su come presentare una buona segnalazione.
Per gli impazienti
* Per i problemi noti verificare sempre lo stato degli aggiornamenti
dell'immagine sulla nostra pagina iniziale .
* Prima di inviare una segnalazione di bug provare a riprodurlo con le
*versione più recenti* di /live-build/, /live-boot/ e /live-config/.
* Si cerchi di fornire *informazioni il più dettagliate possibile* riguardo il
bug. Questo comprende (almeno) la versione di /live-build/, /live-boot/ e
/live-config/ utilizzata e la distribuzione del sistema live che si sta
costruendo.
13.1 PROBLEMI NOTI
..................
Giacché Debian *testing* e Debian *unstable* subiscono cambiamenti continui,
quando si specifica l'una o l'altra come sistema di destinazione, può non
essere sempre possibile una creazione che vada a buon fine.
Se questo causa troppe difficoltà, non creare un sistema basato su *testing* o
*unstable* ma usare piuttosto *stable*. /live-build/ si basa su *stable* in
modo predefinito.
I problemi noti al momento sono elencati sotto la sezione "status" della nostra
pagina iniziale
Questo manuale non intende insegnare come identificare e risolvere
correttamente i problemi dei pacchetti delle distribuzioni di sviluppo,
tuttavia ci sono un paio di cose da provare: se la creazione di *testing* non
va a buon fine provare con *unstable*; se non funziona nemmeno *unstable*
tornare a *testing* ed effettuare il pinning da *unstable* alla nuova versione
del pacchetto corrotto (si veda APT pinning per i dettagli).
13.2 RICOSTRUIRE DA ZERO
........................
Per essere certi che un particolare bug non sia causato dalla creazione di un
sistema non pulito, ricostruire sempre l'intero sistema da zero per vedere se
il bug sia riproducibile.
13.3 USARE PACCHETTI AGGIORNATI
...............................
L'utilizzo di pacchetti datati può causare notevoli complicazioni nel
tentativo di riprodurre (e alla fine risolvere) il problema. Assicurarsi che il
sistema creato sia aggiornato e ogni pacchetto incluso nell'immagine lo sia a
sua volta.
13.4 RACCOGLIERE INFORMAZIONI
.............................
Nella segnalazione si invita a fornire informazioni sufficienti. Dovrebbe
almeno contenere l'esatta versione di /live-build/ nella quale si è trovato il
bug e i passi per riprodurlo. Con un po' di buon senso si può includere
qualsiasi altro dettaglio rilevante che si ritiene utile per la risoluzione del
problema.
Affinché la segnalazione del bug sia migliore possibile, si richiedono almeno
le seguenti informazioni:
* Architettura del sistema ospitante
* Versione di /live-build/ sul sistema ospitante
* Versione di /live-boot/ sul sistema ospitante
* Versione di /live-config/ sul sistema live
* Versione di debootstrap o cdebootstrap sul sistema ospitante
* Architettura del sistema live
* Distribuzione del sistema live
* Versione del kernel sul sistema live
È possibile generare un registro del processo di costruzione usando il comando
tee. Si raccomanda di farlo automaticamente con uno script auto/build; (si veda
Gestire una configurazione per i dettagli).
# lb build 2>&1 | tee build.log
All'avvio, /live-boot/ conserva un registro in /var/log/live.log (or
/var/log/live-boot.log).
Inoltre, per escludere altri errori, è sempre una buona idea creare un tar
della propria directory config/ e caricarlo da qualche parte (*non* inviarlo
come allegato alla mailing list), in modo che sia per noi possibile riprodurre
gli errori incontrati. Se ciò causa problemi (ad esempio a causa della
dimensione) si può utilizzare l'output di lb config --dump che produce un
sommario dell'albero di configurazione (elenca i file nelle sottodirectory di
config/ ma non le include).
Ricordarsi che i file di registro da inviare vanno creati con l'impostazione
della lingua inglese, ad esempio eseguendo il comando /live-build/ preponendo
LC_ALL=C oppure LC_ALL=en_US.
13.5 SE POSSIBILE ISOLARE IL CASO NON ANDATO A BUON FINE
........................................................
Se possibile, isolare il caso non andato a buon fine alla variazione più
piccola che lo causa. Non è sempre facile da fare, perciò non preoccupatevi
se non riuscite a gestirlo per la vostra segnalazione. Tuttavia, se si
pianifica bene il ciclo di sviluppo adottando piccole modifiche per ogni
iterazione, si riuscirà ad isolare il problema creando una configurazione
semplificata che si avvicina all'attuale con l'aggiunta delle sole modifiche
problematiche. Se si incontrano serie difficoltà nel trovare la causa,
potrebbe essere che sono stati inseriti troppi cambiamenti in una sola volta e
bisogna cambiare approccio.
13.6 SEGNALARE IL BUG DEL PACCHETTO GIUSTO
..........................................
Dove appare il bug?
13.6.1 DURANTE LA COMPILAZIONE MENTRE ESEGUE IL BOOTSTRAP
.........................................................
/live-build/ avvia inizialmente un sistema Debian di base con debootstrap o
cdebootstrap; può fallire a seconda dello strumento utilizzato e della
distribuzione Debian che si sta avviando. Se il bug appare a questo punto
controllare che l'errore sia relativo ad uno specifico pacchetto Debian (più
probabile) o allo strumento di avvio stesso.
In entrambi i casi non è un bug in Debian Live, ma piuttosto in Debian stessa
che non può essere risolto direttamente. Si prega di inviare una segnalazione
di bug riguardo l'utilità di avvio o il pacchetto che ha fallito.
13.6.2 DURANTE LA COMPILAZIONE MENTRE INSTALLA I PACCHETTI
..........................................................
/live-build/ installa pacchetti aggiuntivi dall'archivio Debian e può fallire
a seconda della distribuzione Debian e lo stato dell'archivio giornaliero.Se il
bug appare a questo punto, controllare che l'errore sia riproducibile su un
sistema normale.
In questo caso non è un bug in Debian Live, ma piuttosto in Debian, inviare
una segnalazione sul pacchetto che ha fallito. Si otterranno maggiori
informazioni eseguendo debootstrap separatamente dal sistema live o eseguendo
lb bootstrap --debug.
Se si verifica un problema utilizzando un mirror locale o un qualsiasi tipo di
proxy è bene riprodurlo avviando da un mirror ufficiale.
13.6.3 IN FASE DI AVVIO
.......................
Se l'immagine non si avvia segnalarlo alla mailing list con le informazioni
richieste in Raccogliere informazioni. Non dimenticare di menzionare come e
quando l'immagine fallisce, in Qemu, VMWare o hardware reale. Se si utilizza un
qualsiasi sistema di virtualizzazione provare sempre su hardware reale prima di
segnalare un bug; anche fornire un'istantanea dello schermo può essere molto
utile.
13.6.4 IN FASE DI ESECUZIONE
............................
Se un pacchetto è stato installato con successo ma fallisce durante
l'esecuzione del sistema live, si tratta probabilmente di un bug in Debian
Live. Tuttavia,
13.7 FARE LA RICERCA
....................
Prima di riportare il bug si prega di cercare sul web il messaggio d'errore o
il sintomo ottenuti. Poiché è altamente improbabile essere l'unica persona ad
incontrare un certo problema, c'è sempre la possibilità che sia stato
discusso altrove e che siano stati proposte una soluzione, una patch o
soluzione temporanea.
Si dovrebbe prestare particolare attenzione alla mailing list di Debian Live
così come la pagina iniziale del sito, in quanto contengono informazioni più
aggiornate. Se tale informazione esiste si includa sempre un riferimento nella
segnalazione del bug.
In aggiunta bisogna controllare l'attuale elenco dei bug riguardanti
/live-build/, /live-boot/ e /live-config/ per vedere se sia già stato
segnalato qualcosa di simile.
13.8 DOVE SEGNALARE I BUG
.........................
Il progetto Debian Live tiene traccia di tutti i bug sul Debian Bug Tracking
System (BTS, sistema di tracciamento dei bug Debian), si veda
per le informazioni su come usarlo. È anche
possibile utilizzare il comando reportbug dall'omonimo pacchetto.
In genere bisogna riportare gli errori in fase di compilazione verso il
pacchetto /live-build/, quelli di avvio verso /live-boot/ e quelli in fase di
esecuzione a /live-config/. Se non siete certi di quale sia il pacchetto
appropriato o serve maggiore aiuto prima della segnalazione, inviate un
messaggio in mailing list e vi aiuteremo a capire.
Si noti che i bug trovati nelle distribuzioni derivate da Debian (come Ubuntu e
altre) *non* vanno segnalati a Debian BTS a meno che non siano riproducibili
anche su un sistema Debian utilizzando pacchetti ufficiali Debian.
14. LO STILE NELLO SCRIVERE CODICE
----------------------------------
Questo capitolo documenta lo stile usato per il codice di /live-boot/ e gli
altri.
14.1 COMPATIBILITà
...................
* Non usare sintassi o semantiche mirate alla shell Bash. Ad esempio, l'uso di
costrutti array.
* Utilizzare solo il sottoinsieme POSIX - ad esempio, usare $(foo) invece di
`foo`.
* È possibile verificare i propri script con "sh -n" e "checkbashisms".
14.2 RIENTRI
............
* Usare sempre i tab piuttosto che gli spazi.
14.3 RITORNO A CAPO
...................
* Generalmente le righe sono composte da un massimo di 80 caratteri.
* Utilizzare lo "stile Linux" per le interruzioni di riga:
Sbagliato:
if foo; then
bar
fi
Corretto:
if foo
then
bar
fi
* Lo stesso vale per le funzioni:
Sbagliato:
foo () {
bar
}
Corretto:
foo ()
{
bar
}
14.4 VARIABILI
..............
* Le variabili vanno sempre scritte in maiuscolo.
* Le variabili usate in lb config iniziano sempre con il prefisso LB_.
* Le variabili interne temporanee in /live-build/ dovrebbero iniziare con il
prefisso _LB_.
* Le variabili locali iniziano con il prefisso /live-build/ __LB_.
* Le variabili in /live-config/ relative ai parametri di avvio iniziano con
LIVE_.
* Tutte le altre variabili in /live-config/ iniziano con il prefisso _.
* Intorno alle variabili utilizzare le graffe; ad esempio scrivere ${FOO}
invece di $FOO.
* Proteggere sempre le variabili con le virgolette per rispettare potenziali
spaziature: scrivere "${FOO}" e non ${FOO}.
* Per ragioni di coerenza, usare sempre le virgolette quando si assegnano
valori alle variabili:
Sbagliato:
FOO=bar
Corretto:
FOO="bar"
* Utilizzando variabili multiple, quotare l'intera espressione:
Sbagliato:
if [ -f "${FOO}"/foo/"${BAR}"/bar ]
then
foobar
fi
Corretto:
if [ -f "${FOO}/foo/${BAR}/bar" ]
then
foobar
fi
14.5 VARIE
..........
* Per le chiamate a sed utilizzare "|" (senza virgolette intorno) come
separatore, ad esempio "sed -e 's|foo|bar|'" (senza "").
* Non utilizzare il comando test per prove o confronti, usare "[" "]" (senza
""); ad esempio "if [ -x /bin/foo ]; ..." e non "if test -x /bin/foo; ...".
* Ove possibile utilizzare case invece di test, essendo più facile da leggere
e più veloce in esecuzione.
15. PROCEDURE
-------------
Questo capitolo documenta le procedure all'interno del progetto Debian Live per
vari compiti che necessitano di cooperazione con altri team Debian.
15.1 AGGIORNAMENTI DEGLI UDEB
.............................
Prima di effettuare dei commit di un udeb nel repository svn dell'installatore
Debian va eseguito:
$ ../../scripts/l10n/output-l10n-changes . -d
15.2 RILASCI IMPORTANTI
.......................
Rilasciare una nuova versione stabile di Debian implica che molti team
differenti lavorino insieme; ad un certo punto si inserisce il team Live che
prepara le immagini del sistema live. I requisiti per fare ciò sono:
* Un mirror contenente le versioni rilasciate per l'archivio debian,
debian-security e debian-volatile al quale possa accedere il debian-live
buildd.
* Vanno resi noti i nomi dell'immagine (debian-live-VERSION-ARCH-FLAVOUR.iso).
* Le liste dei pacchetti devono essere state aggiornate.
* Bisogna sincronizzare i dati dal cd Debian (udeb esclude le liste).
* Bisogna sincronizzare i file inclusi dal cd Debian (README.*, doc/*, ecc.).
* Le immagini vengono create e ospitate su cdimage.debian.org.
15.3 RILASCI MINORI
...................
* Bisogna nuovamente aggiornare i mirror di debian, debian-security e
debian-volatile.
* Le immagini vengono create e ospitate su cdimage.debian.org.
* Inviare email di annuncio.
15.3.1 MODELLO PER L'ANNUNCIO DI UN RILASCIO MINORE.
....................................................
Si può generare un'email per l'annuncio dei rilasci minori usando il modello
sottostante e il seguente comando:
$ sed \
-e 's|%major%|5.0|g' \
-e 's|%minor%|5.0.2|g' \
-e 's|%codename%|lenny|g' \
-e 's|%release_mail%|2009/msg00007.html|g'
Si prega di controllare attentamente l'email prima di inviarla e passarla ad
altri per le correzioni.
Debian Live images for Debian GNU/Linux %major% updated
The Debian Live project is pleased to announce the availability of
updated Live images for its stable distribution Debian GNU/Linux %major%
(codename "%codename%").
The images are available for download at:
This update incorporates the changes made in the %minor% point release,
which adds corrections for security problems to the stable release
along with a few adjustments for serious problems. A full list of the
changes may be viewed at:
It also includes the following Live-specific changes:
* [INSERT LIVE-SPECIFIC CHANGE HERE]
* [INSERT LIVE-SPECIFIC CHANGE HERE]
* [LARGER ISSUES MAY DESERVE THEIR OWN SECTION]
URLs
----
Download location of updated images:
Debian Live project homepage:
The current stable distribution:
stable distribution information (release notes, errata etc.):
Security announcements and information:
About Debian
-------------
The Debian Project is an association of Free Software developers who
volunteer their time and effort in order to produce the completely free
operating system Debian GNU/Linux.
About Debian Live
-----------------
Debian Live is an official sub-project of Debian which produces Debian
systems that do not require a classical installer. Images are available
for CD/DVD discs, USB sticks and PXE netbooting as well as a bare
filesystem images for booting directly from the internet.
Contact Information
-------------------
For further information, please visit the Debian Live web pages at
or alternatively send mail to
.
ESEMPI
======
16. ESEMPI
----------
Questo capitolo affronta alcune costruzioni di esempio per specifici casi d'uso
con Debian Live. Se si è nuovi nella costruzione di immagini Debian Live,
raccomandiamo di dare innanzitutto un'occhiata ai tre tutorial in sequenza,
dato che ciascuno insegna nuove tecniche che aiuteranno nell'uso e nella
comprensione degli esempi rimanenti.
16.1 USARE GLI ESEMPI
.....................
Per usare questi esempi è necessario un sistema per costruirveli sopra che
soddisfi i requisiti elencati in Requisiti e avere /live-build/ installato come
descritto in Installare live-build.
Si noti che, per brevità, in questi esempi non specifichiamo un mirror locale
da usare per la costruzione. Usando un mirror locale, si possono accelerare
considerevolmente i download. Si possono specificare le opzioni quando si usa
lb config, come descritto in Mirror delle distribuzioni usati in fase di
compilazione o, più convenientemente, impostare il predefinito per il proprio
sistema in /etc/live/build.conf. Si crei semplicemente questo file e si
impostino in esso le corrispondenti variabili LB_MIRROR_* per il mirror
desiderato. Ad esempio:
LB_MIRROR_BOOTSTRAP="http://mirror/debian"
LB_MIRROR_CHROOT="http://mirror/debian"
LB_MIRROR_CHROOT_SECURITY="http://mirror/debian-security"
16.2 TUTORIAL 1: UN'IMMAGINE STANDARD
.....................................
*Caso d'uso:* creazione di una prima semplice immagine, imparando i fondamenti
di /live-build/.
In questo tutorial genereremo un'immagine ISO ibrida di Debian Live contenente
solo pacchetti base (senza Xorg) e alcuni pacchetti Debian Live di supporto,
come primo esercizio sull'uso di /live-build/.
Non può essere più semplice:
$ mkdir tutorial1 ; cd tutorial1 ; lb config
Esaminare i contenuti della directory config/; si noterà uno scheletro di
configurazione pronto per essere personalizzato o, in questo caso, usato
immediatamente per costruire un'immagine predefinita.
Ora, come super-utente, si generi l'immagine, salvando un log con tee.
# lb build 2>&1 | tee binary.log
Presupponendo che tutto vada per il verso giusto, dopo un po' la directory
corrente conterrà binary-hybrid.iso. Questa immagine ISO ibrida può essere
avviata direttamente in una macchina virtuale come descritto in Provare
un'immagine ISO con Qemu e Provare un'immagine ISO con virtualbox-ose, oppure
masterizzata su un supporto ottico o ancora su una chiavetta USB come descritto
rispettivamente in Masterizzare un'immagine ISO su un supporto fisico e Copiare
un'immagine USB/HDD su una penna USB.
16.3 TUTORIAL 2: SERVIZIO BROWSER WEB
.....................................
*Caso d'uso:* creazione di un'immagine per servizio browser web, imparando come
applicare le personalizzazioni.
In questo tutorial verrà creata un'immagine adatta all'uso come browser web,
che serve come introduzione alla personalizzazione delle immagini Debian Live.
$ mkdir tutorial2 ; cd tutorial2 ; lb config -p lxde --packages iceweasel
La scelta di LXDE per questo esempio riflette il desiderio di fornire un
ambiente desktop minimale, dato che il punto focale dell'immagine è il singolo
uso che abbiamo in mente, il browser web. Potremmo anche spingerci oltre e
fornire una configurazione predefinita per il browser web in
config/chroot_local-includes/etc/iceweasel/profile/, o pacchetti addizionali di
supporto per la fruizione di vari tipi di contenuti web, ma lasciamo questo
come esercizio per il lettore.
Si generi l'immagine, ancora come super-utente, conservando un log come in
Tutorial 1:
# lb build 2>&1 | tee binary.log
Di nuovo, si verifichi che l'immagine sia a posto e la si collaudi, come in
Tutorial 1.
16.4 TUTORIAL 3: UN'IMMAGINE PERSONALIZZATA
...........................................
*Caso d'uso:* creazione di un progetto per costruire un'immagine personalizzata
che contiene i pacchetti preferiti da portare con sé in una chiavetta USB
ovunque si vada, e che evolve in revisioni successive allorché i bisogni o le
preferenze cambino.
Dal momento che la nostra immagine personalizzata cambierà con le successive
revisioni, e che vogliamo tener traccia di questi cambiamenti, andando per
tentativi ed eventualmente tornando indietro se qualcosa non funziona,
conserveremo la nostra configurazione nel popolare sistema di controllo di
versione git. Useremo anche le migliori pratiche di auto-configurazione tramite
gli script auto come descritto in Gestire una configurazione.
16.4.1 PRIMA REVISIONE
......................
$ mkdir -p tutorial3/auto
$ cp /usr/share/live/build/examples/auto/* tutorial3/auto/
$ cd tutorial3
Modificare auto/config come segue:
#!/bin/sh
lb config noauto \
--architecture i386 \
--linux-flavours 686 \
--packages-lists lxde \
--packages "iceweasel xchat" \
"${@}"
Per prima cosa, --architecture i386 assicura che sul nostro sistema amd64
costruiamo una versione a 32-bit utilizzabile sulla maggior parte delle
macchine. In secondo luogo, usiamo --linux-flavours 686 dato che non prevediamo
di usare questa immagine su sistemi troppo vecchi. Terzo, abbiamo scelto la
lista di pacchetti lxde per avere un desktop minimale. Infine, abbiamo aggiunto
due pacchetti preferiti per cominciare: iceweasel e xchat.
Costruire quindi l'immagine:
# lb build
Si noti che diversamente dai primi due tutorial, non occorre più digitare 2>&1
| tee binary.log dato che questo è ora incluso in auto/build.
Una volta che l'immagine è stata collaudata (come in Tutorial 1) e che si è
sicuri che funzioni correttamente, è il momento di inizializzare il repository
git, aggiungendo solo gli script auto appena creati, e di fare poi il primo
commit:
$ git init
$ git add auto
$ git commit -a -m "Initial import."
16.4.2 SECONDA REVISIONE
........................
In questa revisione ripuliremo la prima compilazione, aggiungeremo il pacchetto
vlc alla configurazione, dunque avverrà una ricompilazione, verifica e commit.
Il comando lb clean ripulirà tutti i file ottenuti con la precedente
generazione eccetto la cache, che ci evita un nuovo download dei pacchetti.
Ciò assicura che il successivo lb build eseguirà di nuovo tutti i passaggi
per rigenerare i file dalla nuova configurazione.
# lb clean
Si modifichi ora auto/config per aggiungere il pacchetto vlc:
#!/bin/sh
lb config noauto \
--architecture i386 \
--linux-flavours 686 \
--packages-lists lxde \
--packages "iceweasel xchat vlc" \
"${@}"
Lanciare nuovamente la generazione:
# lb build
Verificare, e quando soddisfatti, eseguire il commit della revisione
successiva:
$ git commit -a -m "Adding vlc media player."
Ovviamente sono possibili cambiamenti alla configurazione più complicati,
magari aggiungendo file in sottodirectory di config/. Quando si esegue il
commit di nuove revisioni, si faccia solo attenzione a non modificare
manualmente o fare un commit dei file al livello superiore di config che
contengono le variabili LB_*, giacché sono anche prodotti dell'assemblaggio, e
che sono sempre ripuliti da lb clean e ricreati con lb config attraverso i loro
rispettivi script auto.
Siamo arrivati alla fine di questa serie di tutorial. Mentre sono possibili
molti altri tipi di personalizzazioni, anche solo usando le poche
caratteristiche esplorate in questi semplici esempi, può essere creata una
varietà quasi infinita di immagini. Gli esempi rimanenti in questa sezione
coprono diversi altri casi d'uso estrapolati dalle esperienze raccolte degli
utenti Debian Live.
16.5 UN CLIENT KIOSK VNC
........................
*Caso d'uso:* creazione di un'immagine con /live-build/ per avviare
direttamente un server VNC.
Creare una directory con al suo interno una configurazione scheletrica
costruita sulla base dell'elenco di standard-x11, tra cui gdm3, metacity e
xtightvncviewer, disabilitando i raccomandati per ottenere un sistema minimale:
$ mkdir vnc_kiosk_client
$ cd vnc_kiosk_client
$ lb config -a i386 -k 686 -p standard-x11 \
--packages "gdm3 metacity xvnc4viewer" \
--apt-recommends false
Creare la directory /etc/skel e inserirvi un .xsession personalizzato per
l'utente predefinito che lancerà metacity e avvierà xvncviewer, connesso alla
porta 5901 su un server all'indirizzo 192.168.1.2:
$ mkdir -p config/chroot_local-includes/etc/skel
$ cat >config/chroot_local-includes/etc/skel/.xsession <&1 | tee binary.log
All'autore del sistema al momento di scrivere, la seguente configurazione ha
prodotto una immagine di 78Mbyte. Comparabile favorevolmente con i 166Mbyte
prodotta dalla configurazione predefinita nel Tutorial 1.
Ciò che salva più spazio, comparato alla costruzione di un'immagine standard
su un sistema con architettura i386, è la selezione del solo kernel 486 invece
che quello predefinito -k "486 686". Lasciando fuori anche gli indici di APT
con --binary-indices false si può salvare una certa quantità di spazio, il
compromesso è usare apt-get update prima di usare apt nel sistema live.
Scegliendo la lista minima dei pacchetti si esclude il grosso pacchetto locales
e le utilità associate. Saltare i pacchetti raccomandati con --apt-recommends
false salva altro spazio, a scapito di alcuni pacchetti che ci si aspetta di
trovare, come firmware-linux-free che potrebbe servire a supportare un certo
hardware. Le restanti opzioni limano altre piccole quantità di spazio. Sta a
voi decidere se le funzionalità sacrificate con ciascuna ottimizzazione
valgono la pena.
16.7 UN DESKTOP KDE LOCALIZZATO E L'INSTALLER
.............................................
*Caso d'uso:* creazione di un'immagine con il desktop KDE, localizzato per il
portoghese brasiliano e che includa l'installatore.
Si vuole creare un'immagine iso ibrida per architettura i386 usando il nostro
desktop preferito, in questo caso KDE, contenente tutti gli stessi pacchetti
che verrebbero installati dall'installatore Debian standard per KDE.
Il problema iniziale è di scoprire i nomi dei task appropriati, attualmente,
/live-build/ non aiuta in questo. Si può essere fortunati o arrivarci con vari
tentativi, ma c'è uno strumento grep-dctrl il quale può essere utilizzato per
scavare nelle descrizioni in tasksel-data, perciò assicursi di avere entrambi
questi pacchetti:
# apt-get install dctrl-tools tasksel-data
Ora si possono cercare i task appropriati:
$ grep-dctrl -FTest-lang pt_BR /usr/share/tasksel/debian-tasks.desc -sTask,Description
Task: brazilian-portuguese
Description: Brazilian Portuguese environment
This task installs programs, data files, and
documentation that make it easier for Brazilian Portuguese speakers
to use Debian.
Con questo comando, si è scoperto che il task si chiama, abbastanza
chiaramente, brazilian-portuguese. Ora per trovare i task correlati:
$ grep-dctrl -FEnhances brazilian-portuguese /usr/share/tasksel/debian-tasks.desc -sTask,Description
Task: brazilian-portuguese-desktop
Description: Brazilian Portuguese desktop
This task localises the desktop in Brasilian Portuguese.
Task: brazilian-portuguese-kde-desktop
Description: Brazilian Portuguese KDE desktop
This task localises the KDE desktop in Brazilian Portuguese.
Si userà l'opzione sperimentale --language, poiché /live-build/ contempla i
template syslinux per pt_BR (vedere Task per desktop e lingua per i dettagli).
All'avvio verrà generata la lingua pt_BR.UTF-8 e selezionato pt-latin1 come
layout della tastiera. Ora mettiamo insieme i pezzi:
$ mkdir live-pt_BR-kde
$ cd live-pt_BR-kde
$ lb config \
-a i386 \
-k 486 \
-p kde-desktop \
--language pt_BR \
--tasks "brazilian-portuguese brazilian-portuguese-desktop brazilian-portuguese-kde-desktop" \
--bootappend-live "locales=pt_BR.UTF-8 keyboard-layouts=pt-latin1" \
--debian-installer live \
--packages debian-installer-launcher
Si noti che è stato incluso il pacchetto debian-installer-launcher in modo da
poter lanciare l'installer dal desktop della live, e che è stato anche
specificato il kernel 486, dato che attualmente è necessario che il kernel
dell'installer e quello del sistema live coincidano affinché il launcher
funzioni correttamente.
==============================================================================
Title: Manuale di Debian Live
Creator: Debian Live Project
Rights: Copyright (C) 2006-2011 Debian Live Project; License: Questo
programma è software libero: è possibile ridistribuirlo e
modificarlo secondo i termini della GNU General Public License
come pubblicata dalla Free Software Foundation, sia la versione
3 della licenza o (a scelta) una versione successiva. Questo
programma è distribuito nella speranza che possa essere utile,
ma SENZA ALCUNA GARANZIA, nemmeno la garanzia implicita di
COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedere la
GNU General Public License per ulteriori dettagli. Si dovrebbe
aver ricevuto una copia della GNU General Public License con
questo programma. In caso contrario, vedere
http://www.gnu.org/licenses/. Sui sistemi Debian, il testo
completo della GNU General Public License può essere trovato
nel file /usr/share/common-licenses/GPL-3.
Publisher: Debian Live Project
Date: 2011-01-25
Sourcefile: live-manual.ssm.sst
Filetype: SiSU text 2.0
Source digest: SHA256(live-manual.ssm.sst)=
fca2db1265da47254f46161d6b197cb9a90bdd47f96a75390f9901ca12a335bd
Skin digest: SHA256(skin_debian-live.rb)=
be92275c5ee3367edeed653901c34601c545c50acecc23ab65594d8e2f4df9af
Generated by: Generated by: SiSU 2.7.9 of 2010w49/4 (2010-12-09)
Ruby version: ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]
Document (dal) last generated: Tue Jan 25 06:44:38 +0000 2011
==============================================================================
plaintext (plain text):
http://live.debian.net/manual/it/live-manual/plain.txt
Other versions of this document:
manifest:
http://live.debian.net/manual/it/live-manual/sisu_manifest.html
at:
http://live.debian.net/manual/it
* Generated by: SiSU 2.7.9 of 2010w49/4 (2010-12-09)
* Ruby version: ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]
* Last Generated on: Tue Jan 25 06:44:57 +0000 2011
* SiSU http://www.sisudoc.org/