-
gen42 commenti
Il seguente articolo è un guest post scritto per DGXstyle.net da Dark Flash, admin del sito Dark Mirror. Consiglio a tutti voi di visitarlo.Gentoo e Portage
Questo articolo deve essere un piccolo how-to che spiegherà in breve come possiamo utilizzare e configurare Portage. Portage è il gestore di pacchetti tipico della distribuzione Linux Gentoo; differisce dagli altri gestori di pacchetti tradizionali come APT di Debian, Pacman di Arch Linux o Rpm di Red Hat perché installa i programmi compilandoli da codice sorgente. In tal modo abbiamo dei punti a favore come l’estrema personalizzazione del nostro sistema o come l’ottimizzazione finale degli eseguibili ottenuti, ma anche un inconveniente: ci vuole molto più tempo a compilare un programma da sorgente che installarsi un pacchetto precompilato. Questo problema per fortuna non è più molto rilevante se utilizziamo hardware recente, ma potrebbe essere uno scoglio non indifferente per chi utilizza macchine datate.
Ovviamente Gentoo si può installare su qualsiasi computer (ed è anche compatibile con una grande quantità di processori, come x86, amd64, arm, alpha, ia64, powerPC, hppa, sh, sparc e s390), ma se usiamo computer vecchi ci vorrà un bel po’ di tempo per ottenere un sistema completo. Ci sono comunque delle tecniche per rendere più veloce l’installazione dei programmi su hardware datato (come il cross-compiling che permette di compilare da un altra macchina il programma). Per installare il sistema abbiamo sostanzialmente due possibilità:
1. Utilizzare il Gentoo DVD (ora è disponibile alla versione 10.1, rilasciato ufficialmente nell’ottobre del 2009) che contiene programmi già compilati e pronti. Questo DVD è disponibile solo per piattaforme x86 e amd64.
2. Fare un’installazione Stage3 scaricando il CD minimale e chrootando (scelta consigliata). In questa modalità si personalizza al meglio il sistema e si compilano i programmi scelti.
Potete trovare una lista aggiornata dei mirror contenenti CD e DVD. Se siete in Italia vi consiglio il server svizzero
Per installare il sistema esiste già un ottimo how-to ufficiale.
Io parlerò in modo particolare di come possiamo personalizzare il sistema e di qualche piccolo trucco per utilizzare al meglio Portage.
Per configurare le opzioni di compilazione dobbiamo editare il file /etc/make.conf. Apriamo il file con il nostro editor di testo preferito.
Vediamo insieme com’è strutturato: abbiamo delle variabili (come use, cflag) che corrispondono a dei valori. Noi possiamo modificare questi valori per ottenere l’effetto desiderato. Iniziamo:Variabili cflags e cxxflags
Queste variabili sono molto importanti perché dicono al compilatore (gcc) che switch usare per compilare rispettivamente i sorgenti in C e C++. Modificando queste variabili possiamo aumentare o diminuire l’output dei messaggi del debug, ottimizzare più o meno il futuro eseguibile od anche ottenere ulteriori informazioni nel caso si verifichi un errore di compilazione. Ci sono dei valori più sicuri e meno ottimizzanti (sia per i processori Intel e per processori AMD) e anche valori molto ottimizzanti ma molto rischiosi… Vi consiglio di usare con cautela valori molto ottimizzanti e pericolosi se non siete esperti e soprattutto di non compilarci programmi indispensabili (come il kernel Linux).
March
Iniziamo ad impostare il valore -march, che dice al compilatore per quale architettura dovrà essere prodotto l’eseguibile.
Nota: se avete un gcc recente potete impostare il valore -march=native ed il compilatore identificherà il vostro processore ed utilizzerà delle opzioni di compilazione adeguate.
Pipe
-pipe è un’opzione sicuramente utile e inoffensiva. Fa utilizzare le pipe al compilatore al posto dei files temporanei. (Le pipe sono comandi in bash che fanno cose come trasferire l’output di un programma nell’input di un altro comando).O
Ora impostiamo -O che controlla il livello generale dell’ottimizzazione del sorgente: ha sostanzialemente cinque livelli:
-O0: il sorgente non viene ottimizzato
-O1: il sorgente viene leggermente ottimizzato e non fa perdere tempo nel processo di compilazione
-O2: livello che viene impostato di default, abbiamo una via di mezzo tra ottimizzazione e tempo di compilazione
-O3: livello molto ottimizzante e molto rischioso, non compilarci tutto il sistema.
-O4: sì, non sono impazzito! -O4 esiste ma ma non è documentata! Otimizza poco più di -O3. Non compilateci kernel o tutto il sistema però!
-O9: un altro parametro non documentato… no comment!
-fomit-frame-pointer: non estremamente rischiosa, elimina delle info di debug ma ottimizza leggermente.
-funroll-loops, -funroll-all-loops: flags aggressive: attenzione, queste flag sono molto aggressive e pericolose. Possono ottimizzare molto il sistema ma renderlo anche instabile e, se usate male, possono addirittura peggiorare le prestazioni oltre a creare un codice più grosso e lento.
-fast-math: flag molto ottimizzante ed estremamente instabile. Non usarla per compilare roba che influisce sulla (in)stabilità del sistema.
-m3dnow: va bene per compilare programmi come driver della scheda videoUSE flag
Una della caratteristica più importante di Portage sono le USE flag che ci consentono di scegliere che supporti installare o non installare dei software che compileremo. Se per esempio io sono un fanatico di KDE e non voglio installare il supporto per Gnome in tutti i programmi che compilerò basta che inserisco nel make.confUSE="kde qt4 -gnome"
Possiamo vedere quali variabili use possono essere utilizzate per ogni programma con
emerge -pv programma
Vediamo in rosso i valori che abbiamo compilato, in blu (e soprattutto preceduti da un trattino) le use non utilizzate. Se vogliamo abilitare un supporto in più basta inserire nel make.conf il nome del supporto come valore della variabile.
E se io volessi utilizzare una variabile USE solo per un determinato pacchetto? Nulla di più semplice. Creiamo un file in /etc/portage/package.use e ci scriviamo il percorso completo del pacchetto seguito dal supporto che vogliamo abilitare: per esempio
media-libs/xine-lib aac
in questo modo è attivo solo per xine-lib il supporto aac. Se invece non vogliamo installare un determinato supporto basta inserire come valore il nome del supporto preceduto da un trattino.Variabile LINGUAS
È semplicemente la lingua preferita che verrà installata. Per mettere l’italiano basta impostareLINGUAS="it"
Variabile ACCEPT_KEYWORDS
Questa variabile fa in modo che venga isntallato software Testing o Instable.
Per ottenere un sistema Testing settiamoACCEPT_KEYWORDS="~x86"
Per un sistema Instable settiamo
ACCEPT_KEYWORDS="-x86"
Variabile VIDEO_CARDS
Identifca la scheda video. Per esempio:VIDEO_CARDS="intel"
Variabile AUDIO_CARDS
Identifica la scheda audio Per esempio:AUDIO_CARDS="hda-intel"
Variabile ACCEPT_LICENSE
Vi consente di installare software non libero, per accettare tutte le licenze impostateACCEPT_LICENSE="*"
FEATURES
Sono opzioni in più che si possono attivare. Io vi consiglio per esempio FEATURES=”parallel-fetch” che consente di scaricare i sorgenti mentre si compila un altro programma.Aggiornare e tenere pulito il sistema
Per aggiornare l’elenco di Portage basta unemerge –sync
Per aggiornare i programmi serve
emerge -u world
(world è l’elenco di tutti i programmi installati), per aggiornare anche il cuore del vostro sistema date
emerge -u –deep world
Se avete cambiato una use flag e volete ricompilare tutto con la nuova compilazione date un
emerge –update –deep –newuse world
Per ripuliure il sistema
emerge –depclean
Se invece qualcosa non funziona o ci sono degli errori in portage installate gentoolkit (emerge gentoolkit) e date un
revdep-rebuildAltro
Per cercare un pacchetto in portage dateemerge –search pacchetto
Per cercare nelle descrizioni
emerge –searchdes pacchetto
Potete anche installare eix che è un ottimo strumento per la ricerca dei programmi in Portage.
Vi consiglio anche di provare genlop, ha tante funzioni interessanti come per esempio vedere in quanto tempo è stato compilato un determinato programma.Links
Gentoo: http://www.gentoo.org
GentooPortage: http://gentoo-portage.com/
GCC: http://gcc.gnu.org/
2 commenti a “Guida alla configurazione e alla gestione di Portage”
-
Beh, pubblichi un articolo su gentoo e nemmeno me lo dici? Cattivo!!!
-
ottimo articolo
prima o poi la installerò!!












Ultimi commenti