1. Introduzione

1.1. Come costruire un Sistema LFS

Il sistema LFS verrà costruito utilizzando una distribuzione Linux precedentemente installata (come Debian, Mandrake, Red Hat o SuSE). Questo sistema Linux esistente (l'ospite o host) sarà usato come punto di partenza per fornire i programmi necessari, che includono un compilatore, un linker e una shell per costruire il nuovo sistema. Si selezioni l'opzione «development» durante l'installazione della propria distribuzione per poter accedere a questi strumenti.

Come alternativa all'installazione di un'intera distribuzione separata sulla propria macchina si potrebbe usare il Linux From Scratch LiveCD. Il CD funziona bene come sistema host, fornendo tutti gli strumenti necessari per seguire con successo le istruzioni in questo libro. Inoltre contiene tutti i pacchetti sorgenti, patche e una copia di questo libro. In questo modo una volta che si ha il CD non sono necessarie connessioni in rete o download aggiuntivi. Per ulteriori informazioni su LiveCD LFS o per scaricare una copia visitare http://www.linuxfromscratch.org/livecd/.

Il Capitolo 2 di questo libro descrive come creare una nuova partizione ed un file system nativi Linux, la sede in cui il nuovo sistema LFS sarà compilato ed installato. Il Capitolo 3 spiega quali pacchetti e patch scaricare per costruire un sistema LFS e come memorizzarli nel nuovo file system. Il Capitolo 4 discute come configurare un ambiente funzionante. Bisognerebbe leggere attentamente il Capitolo 4 perché spiega questioni importanti di cui uno sviluppatore dovrebbe essere consapevole prima di procedere attraverso il Capitolo 5 e oltre.

Il Capitolo 5 illustra l'installazione di alcuni pacchetti che costituiranno l'insieme degli strumenti fondamentali di sviluppo (la toolchain), usati per costuire il sistema LFS vero e proprio nel Capitolo 6. Alcuni di questi pacchetti sono necessari per la risoluzione di dipendenze circolari; ad esempio, per compilare un compilatore è necessario un compilatore.

Il Capitolo 5 mostra anche all'utente come costruire una prima passaggio della toolchain, comprendente Binutils e GCC (primo passaggio sostanzialmente significa che questi due pacchetti cruciali saranno reinstallati una seconda volta). Il passo successivo è la costruzione di Glibc, la libreria C. Glibc sarà compilata usando i programmi della toolchain costruiti nel primo passaggio. Poi, sarà costruito un secondo passaggio della toolchain. Questa volta la toolchain sarà linkata dinamicamente alla Glibc appena costruita. I pacchetti restanti del Capitolo 5 saranno tutti costruiti usando la toolchain di questo secondo passaggio. Al completamento di tutto questo l'installazione di LFS non dipenderà più dalla distribuzione ospite, con l'eccezione del kernel in esecuzione.

Questo sforzo per isolare il nuovo sistema dalla distribuzione host può sembrare eccessivo, ma all'inizio del capitolo Sezione 5.2, «Note tecniche sulla Toolchain» è fornita una spiegazione tecnica completa.

Nel Capitolo 6 viene costruito il sistema LFS completo. Il programma chroot (change root) viene usato per entrare in un ambiente virtuale ed avviare una nuova shell la cui directory root sarà la partizione LFS. Questo è molto simile a riavviare imponendo al kernel di montare la partizione LFS come partizione root. Il sistema non si riavvia davvero, si effettua solo il cambio di root perché la creazione di un sistema avviabile richiede del lavoro aggiuntivo che non è ancora necessario. Il vantaggio principale sta nel fatto che «cambiare root» permette di continuare ad usare il sistema ospite mentre si costruisce LFS. Nell'attesa della compilazione di un pacchetto si potrà passare ad una nuova console virtuale (CV) o ad un desktop X e continuare ad usare il computer normalmente.

Per completare l'installazione nel Capitolo 7 sono impostati gli LFS-Bootscript e nel Capitolo 8 sono impostati il kernel e il bootloader. Il Capitolo 9 contiene informazioni su come proseguire l'esperienza LFS oltre questo libro. Dopo aver eseguito i passi illustrati in questo libro, il computer sarà pronto per essere riavviato con il nuovo sistema LFS.

Questo è il processo in poche parole. Le informazioni dettagliate sui passi da fare sono trattate nei capitoli successivi e nelle descrizioni dei pacchetti. Le cose che possono sembrare complicate si chiariranno e tutto quadrerà man mano che si procede nell'avventura di LFS.