Stima dei tempi
Adesso che siamo sul punto di iniziare la compilazione dei pacchetti che sono stati scaricati in $LFS/sources la domanda più logica che viene da farsi è: quanto tempo occorrerà, all'incirca, per compilare e installare ciascun pacchetto?
La risposta, purtroppo, è molto articolata poiché Linux From Scratch può essere costruita usando tanti sistemi differenti fra loro e quindi è impossibile fare una stima accurata dei tempi. Il pacchetto più grosso (Glibc) dovrebbe richiedere approssimativamente 20 minuti sui sistemi più veloci, ma potrebbe richiedere molte decine di ore su sistemi più lenti. Sarebbe opportuno, iniziando questa impresa, potere scegliere una macchina abbastanza veloce o avere molta, ma molta pazienza.
Invece di suggerire dei tempi effettivi per la compilazione/installazione di ciascun pacchetto verrà indicato un coefficiente da moltiplicare per una particolare unità di misura chiamata SBU (Standard Build Unit).
Questa unità SBU rappresenta il tempo necessario, per una data macchina, per compilare il primo dei pacchetti: binutils. Tutti gli altri tempi di compilazione saranno espressi relativamente a questo tempo.
Ad esempio, se la macchina con cui stiamo lavorando ha impiegato 10 minuti per completare binutils, un pacchetto per cui viene indicato un tempo di 4,5 SBU richiederà approssimativamente 45 minuti. Fortunatamente molti tempi sono più brevi di quello di binutils.
In generale le indicazioni in SBU non sono molto accurate, poiché esse dipendono da molti fattori, inclusa la versione di GCC dell'host. Si noti che su macchine basate su Symmetric Multi-Processor (SMP) le stime in SBU sono ancora meno accurate, ma vengono comunque fornite per dare un'idea del tempo necessario.
Se si vogliono fare dei confronti per macchine specifiche si può consultare la LinuxFromScratch SBU Home Page.
Nei moderni sistemi con processori a core multipli si possono abbreviare i tempi ricorrendo alla compilazione parallela. Per esempio nel caso di un processore Dual Core si può agire, sperimentalmente, in due modi:
export MAKEFLAGS='-j 2'
make -j2
In entrambi i casi, se tutto andrà a buon fine, non è detto che i tempi si dimezzeranno, ma subiranno sicuramente una forte riduzione. In caso di problemi, invece, potrebbe risultare più complicato interpretare i messaggi d'errore a causa del fatto che il lavoro verrà svolto in modo interallacciato. Se così fosse sarebbe meglio ricompilare a singolo processore.
Le suite di test
Per molti pacchetti viene fornita una suite di test. Potrebbe essere una buona idea eseguirla appena costruito il pacchetto, poiché può fornire un controllo d'integrità per indicare che tutto sia stato compilato correttamente ed avere la garanzia che il pacchetto funzioni così come lo sviluppatore indendeva. Non viene garantito, ovviamente, che il pacchetto sia totalmente privo di errori.
Alcune suite di test sono più importanti di altre. Per esempio le suite di test per i pacchetti chiave della toolchain -GCC-Binutils-Glibc- sono di grande importanza, per via del loro ruolo centrale in un sistema che funziona correttamente. Le suite di test per GCC e Glibc possono richiedere molto tempo per completarsi, specialmente sulle macchine più lente, ma sono fortemente raccomandate.
L'esperienza ha dimostrato che c'è poco da guadagnare eseguendo le suite di test nella sezione n.5, perchè non si può sfuggire al fatto che il sistema ospite esercita sempre una qualche influenza sui test effettuati in quell'ambiente, causando spesso fallimenti inspiegabili. Poiché i tool costruiti nella sezione n.5 sono temporanei e verranno scartati in seguito, si raccomanda al lettore medio di non eseguirle. Le istruzioni per eseguirle sono fornite a beneficio di tester e sviluppatori, ma sono del tutto facoltative.
Un problema comune quando si eseguono le suite di test per Binutils e GCC è l'esaurimento degli pseudo terminali (PTY). Questo può dare luogo a un numero altissimo di fallimenti durante il test. Tutto questo può accadere per molte ragioni, ma la causa più probabile è che il sistema ospite non abbia il file system devpts impostato correttamente. Questo problema viene discusso con maggiori dettagli in LFS FAQ: The system has no more ptys.
A volte le suite di test dei paccheti falliranno, ma per ragioni di cui gli sviluppatori sono a conoscenza e sono state giudicate non critiche.
Consultare i log situati presso Index of /lfs/build-logs/7.4 per verificare che questi fallimenti siano normali. Questo principio si applica a tutti i test durante tutto il lavoro.
Colui che pensa di più, dirà il minimo di quell'ineffabile essenza che chiamiamo Spirito. Possiamo intravvedere Dio nei fenomeni grezzi e in qualche modo distanti della materia; ma quando tentiamo di descriverlo e di definirlo, sia il linguaggio che il pensiero ci abbandonano, e restiamo impotenti, come stolti e selvaggi. Quell'essenza rifiuta di essere tradotta in proposizioni.
Ralph Waldo Emerson