Installazione di uno stage.
Impostare la data e l'ora.
Prima di continuare è necessario controllare la data e l'ora ed aggiornarle. Un orologio impostato male può portare problemi in futuro.
Per visualizzare l'ora e la data attuali eseguire date:
Verificare la data e l'ora.
# date Tue Jan 17 12:59:00 UTC 2012
Se la data o l'ora fossero errate, è possibile aggiornarle utilizzando il comando date MMDDhhmmCCYY ( dove M è il mese, D è il giorno, h l'ora, m il minuto, C il secolo e Y l'anno). A questo punto è consigliabile impostare l'ora UTC, è possibile regolare il fuso orario (timezone) in seguito. Ad esempio per impostare la data al 17 gennaio 2012 e l'ora alle 12:59:
Impostare data e ora in UTC.
# date 011712592012
Il passo successivo consiste nell'installazione dello stage3 sul sistema. Il comando uname -m può essere utile per capire che tipo di stage è necessario utilizzare, dato che fornisce informazioni sull'architettura del sistema.
I CD minimali ed i LiveDVD di installazione non contengono alcun archivio stage3.
Usare lo stage da Internet.
Scaricare lo stage.
Andare al punto sul quale si è montato il filesystem (molto probabilmente /mnt/gentoo):
Andare al punto di mount di Gentoo.
# cd /mnt/gentoo
Secondo la modalità di installazione scelta sono disponibili un paio di strumenti per scaricare lo stage. Se si ha links, allora si può visitare immediatamente la lista dei mirror di Gentoo e scegliere un mirror vicino: digita links http://www.gentoo.org/main/en/mirrors.xml e premi invio.
Se non si dispone di links, si dovrebbe poter almeno contare su lynx. Se è necessario un proxy, esportare le variabili http_proxy e ftp_proxy:
Impostare i proxy per lynx.
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
D'ora in poi si suppone che l'utente utilizzi links.
Selezionare un mirror vicino; generalmente uno di tipo HTTP è sufficente ma sono anche disponibili mirror che utilizzano protocolli differenti. Spostarsi nella directory releases/x86/autobuilds/. Si dovrebbero vedere tutti gli stage disponibili per l'architettura desiderata, eventualmente suddivisi in sottodirectory a seconda della sottoarchitettura. Selezionarne uno e premere D per scaricarlo. Quando si è finito, premere Q per chiudere il browser.
La maggior parte degli utenti PC dovrebbero utilizzare lo stage3 stage3-i686-<release>.tar.bz2. Tutti i PC moderni vengono considerati i686. Se si utilizzasse una macchina più vecchia è possibile consultare la lista dei processori compatibili i686 su Wikipedia. I processori vecchi come i Pentium, K5, K6, o Via C3 e simili richiedono il più generico stage3 x86. Processori più vecchi del 486 non sono supportati.
Cercare i mirror con links.
# links http://www.gentoo.org/main/en/mirrors.xml (Se si necessita di proxy in links:) # links -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
Assicurarsi di scaricare un archivio stage3, le installazioni con stage1 o stage2 non sono più supportate (e nella maggior parte dei casi non si trovano più sui mirror).
Se si desidera controllare l'integrità dello stage scaricato, usare openssl e confrontare l'output con i checksum forniti sul mirror. I digest file contengono diversi checksum, ciascuno dei quali è stato ottenuto da un algoritmo specifico. Quelli consigliati sono SHA512 e Whirlpool.
Determinare l'integrità dello stage scaricato.
## Calcolo del checksum SHA512
# openssl dgst -r -sha512 stage3-i686-<release>.tar.bz2
oppure
# sha512sum stage3-i686-<release>.tar.bz2
## Calcolo del checksum Whirlpool
# openssl dgst -r -whirlpool stage3-i686-<release>.tar.bz2
Ora occorre confrontare l'output dei comandi precedenti con i valori memorizzati all'interno dei file .DIGESTS, anche questi disponibili sui mirror. I valori devono corrispondere esattamente, altrimenti il file scaricato potrebbe essere corrotto (oppure ad essere corrotti sono i digest file). Estrazione dello stage.
Decomprimere ora lo stage nel sistema. Utilizzare l'utility tar per procedere poichè risulta essere il metodo più facile:
Estrazione dello stage.
# tar xvjpf stage3-*.tar.bz2
Assicurarsi di usare le stesse opzioni (xvjpf). La x sta per Estrarre, la v per Verbose e mostra ciò che accade nel processo di estrazione (opzionale), la j per Decomprimere con bzip2, la p per Conservare i permessi e la f per denotare che si vuole estrarre un file, non un input standard.
Configurare le opzioni di compilazione.
Per ottimizzare Gentoo, si possono impostare alcune variabili che hanno effetto sul comportamento di Portage. Tutte queste variabili possono essere impostate come variabili di ambiente (usando export), ma non in modo permanente. Per mantenere le impostazioni, Portage fornisce il file di configurazione /etc/portage/make.conf. È il file da modificare adesso.
Nota: Un elenco commentato di tutte le variabili possibili si trova in /mnt/gentoo/usr/share/portage/config/make.conf.example. Ma per una installazione di Gentoo è soltanto necessario impostare le variabili che sono menzionate sotto.Aprire /etc/portage/make.conf
Utilizzare il proprio editor preferito (in questa guida si usa nano) per poter cambiare le variabili di ottimizzazione che di cui si sta trattando.
# nano -w /mnt/gentoo/etc/portage/make.conf
Come è evidente, il file make.conf.example è strutturato in modo molto semplice: le righe commentate iniziano con "#", le altre righe definiscono le variabili, usando la sintassi VARIABILE="valore". Molte di queste variabili vengono trattate in seguito.
CFLAGS e CXXFLAGS
Le variabili CFLAGS e CXXFLAGS definiscono le opzioni di ottimizzazione per i compilatori C e C++ rispettivamente di gcc. Anche se qui vengono definite in generale, le massime prestazioni si ottengono quando si impostano le variabili separatamente per ogni programma perchè ogni programma è differente.
In make.conf si dovrebbero definire le impostazioni di ottimizzazione che si ritiene possano rendere il sistema più reattivo in generale. Non mettere impostazioni sperimentali in questa variabile; troppa ottimizzazione può far funzionare male i programmi (crash, o peggio ancora, malfunzionamento).
Non vengono spiegate tutte le possibili opzioni di ottimizzazione. Chi volesse conoscerle, legga il Manuale Online GNU o la pagina di informazioni gcc (info gcc funziona solo su un sistema Linux). Lo stesso file make.conf.example contiene molti esempi e informazioni da consultare.
Una prima impostazione è la flag -march= o -mtune=, che specifica il nome dell'architettura. Le possibili opzioni sono descritte nel file make.conf.example (come commenti). Uno dei valori più comunemente usati è native, che comunica al compilatore di selezionare come architettura target quella del sistema in uso (quello cioè sul quale si sta effettuando l'installazione).
Una seconda impostazione è la flag -O (o maiuscola, non zero), che specifica la classe di ottimizzazione di gcc. Possibili classi sono s (per ottimizzazioni sulla dimensione), O (per nessuna ottimizzazione), 1, 2 o perfino 3 per ulteriori ottimizzazioni sulla velocità (ogni classe ha le stesse flag di quella precedente, più alcune aggiuntive). -O2 è quanto viene raccomandato come impostazione predefinita. È risaputo che l'ottimizzazione -O3 causa gravi problemi se usata a livello globale nel sistema, pertanto si consiglia vivamente di rimanere fermi all'ottimizzazione -O2.
Un'altra flag di ottimizzazione molto usata è -pipe (vengono usate le 'pipe' piuttosto che i file temporanei, per la comunicazione tra le varie fasi di compilazione). Non ha impatto sul codice generato, ma usa della memoria aggiuntiva. In alcuni sistemi con poca memoria, gcc potrebbe venire interrotto generando degli errori; in tal caso, non usare questa flag.
L'utilizzo di -fomit-frame-pointer (che non tiene il puntatore al frame per funzioni che non ne hanno bisogno) potrebbe avere serie ripercussioni nel caso sia necessario effettuare il debug dell'applicazione.
Quando si definiscono CFLAGS e CXXFLAGS, si dovrebbero mettere insieme molte flag di ottimizzazione. I valori predefiniti contenuti nello stage3 che si è decompresso dovrebbero essere già sufficienti. Il seguente è solo un esempio:
Definizione delle variabili CFLAGS e CXXFLAGS
CFLAGS="-O2 -march=i686 -pipe"
# Usare le stesse impostazioni per entrambe le variabili
CXXFLAGS="${CFLAGS}"
Nota: Si consiglia inoltre di leggere la Guida all'Ottimizzazione della Compilazione per ulteriori informazioni su come le varie opzioni di compilazione possono influenzare il proprio sistema.
MAKEOPTS
Con MAKEOPTS si definisce quante compilazioni parallele possono essere eseguite durante l'installazione di un pacchetto. Una buona scelta è il numero di CPU (o i core della/e CPU) nel sistema più uno, ma non è detto che sia sempre l'impostazione migliore.
MAKEOPTS per un normale sistema con 1 CPU
MAKEOPTS="-j2"
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!
0 commenti:
Posta un commento