Adesso è giunto il momento di parlare del file di configurazione....
In /etc/ c'è un file che si chiama make.conf che contiene tutta la configurazione del sitema pacchetti, due campi in particolare sono da tenere in considerazione; USE e CFLAGS.
Il primo, è un concetto un po difficile da spiegare a parole, mi aiuto con un esempio. Ogni ebuild (che è il file che contiene le istruzioni su dove reperire i sorgenti e dove compilarli) è unfluenzato dal contenuto della variabile USE. In quesa variabile imposto delle flags che sono degli "indicatori" che mi definiscono quello che io voglio o non voglio compilare. ESEMPIO: k3b ha le opzioni per il supporto masterizzazione DVD, ma se io non hi il dvd cosa faccio mi perdo un'ora a compilare in suppordo dvd che non userò mai? No, qui entrano in gioco le USE, perchè se io in questa varibile ci metto un bel "-dvdr" vuol dire che durante la fase di AUTOCONF (che è praticamente il comando ./configure) non verra messo il supporto dvd...comodo no? Le "voci" da mettere in USE si chiamano flags, che possono essere o attivate ( es: dvdr) oppure disattivate (es: -dvdr) quelle non specificate vengono automaticamente prese come disattivate. Altro esempio: se voglio installare un server con apache+mysql+php+ecc non me ne faccio nulla di Xfree, ecco che allora una bella "-X" mi evita ben 10 ore (circa su un P4) di compilazione!!!
Passiamo ora alla variabile CFLAGS, che equivale a "Compile Flags", cioè le opzioni da passare al compilatore (in genere GCC, ma io per esempio quando possibile uso in compilatore Intel) per usare le ottimizzazioni disponibile per il processore usato. Un esempio vale più di mille parole, per cui:
CFLAGS="-march=athlon-xp -O2 -finline-functions -pipe -fomit-frame-pointer -falign-functions=16 -falign-loops=16 -falign-jumps=16 -falign-labels=1 -freduce-all-givs -fprefetch-loop-arrays -mfpmath=sse,387 -ffast-math"
Questo è un tipico esempio di impostazione della varibile CFLAGS, aggiungo con un grado di ottimizzazione abbastaza elevato, non il massimo disponibile ma siamo gia moooolto soppra la media...per il signifato di ogni flags rimando ad un bel: man gcc!
A questo punto sorge spontanea una domanda: Ma se io mi compilo tutto, e poi devo reinstallare, mi devo ricompilare un'altra volta tutto???
Assolutamente no! Infatti c'è la possibilità di creare degli archivi *.tar.bz2 contenenti il binario compilato per la propria macchina! Per cui uno si fa una bella partizione con dentro solo questi file (come il sottoscritto) e poi nel malaugurato caso si doverre reinstallare tutto...si ripescano i binari belli ottimizzati senza ricompilare tutto!
Quindi c'è la possibiltà di usare pachettibinari precompilati, ma è chiaro che con la gentoo non ha molto senso andare sul sito di kde (per esempio) e scaricarsi il binario e poi installare quello....perchè sono prorpio i programmi grossi come KDE e Xfree che sono quelli che hanno un maggior bisogno di essere ottimizzati, per poterli eseguire nel miglior modo possibile e soprattutto sfuttando al meglio la propria cpu e le istruzioni 3DNow oppure le SSE o ancora le MMX!
Questi sono i risultati di un benchmark, a voi le conclusioni.
http://www.gentoo.org/main/en/performance.xml
Nella prossima puntata vi parlaerò della CCACHE, che in gentoo è una cosa che risparmia moltissimo tempo di compilazione.
PS: Per chi fosse interessato,
www.gentoo.org e
www.gentoo.it www.gechi.it FAQ (questi due non sono ufficiali)