• gen
    4

    Guida alla configurazione e alla gestione di Portage

    Autore: DGX — Scritto in: Linux, Software

    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 video

    USE 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.conf

    USE="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 impostare

    LINGUAS="it"


    Variabile ACCEPT_KEYWORDS

    Questa variabile fa in modo che venga isntallato software Testing o Instable.
    Per ottenere un sistema Testing settiamo

    ACCEPT_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 impostate

    ACCEPT_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 un

    emerge –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-rebuild

    Altro
    Per cercare un pacchetto in portage date

    emerge –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/

    Condividi:
    • Digg
    • Sphinn
    • del.icio.us
    • Facebook
    • Mixx
    • Google Bookmarks
    • blogmarks
    • Blogosphere News
    • DZone
    • Fark
    • Faves
    • LinkArena
    • LinkedIn
    • Live
    • MySpace
    • Netvibes
    • Netvouz
    • NewsVine
    • Reddit
    • Segnalo
    • Slashdot
    • SphereIt
    • StumbleUpon
    • Technorati
    • Upnews
    • Wikio
    • Wikio IT
    • Twitter
    • Yahoo! Bookmarks
    • Yigg
    • FriendFeed
    Abbonati ai feed
    2 commenti

2 commenti a “Guida alla configurazione e alla gestione di Portage”

  1. Beh, pubblichi un articolo su gentoo e nemmeno me lo dici? Cattivo!!!

  2. ottimo articolo
    prima o poi la installerò!!

Lascia un commento

Feed RSS

Abbonati ai Feed RSS - powered by Feedburner
Abbonati ai feed RSS e ricevi subito le news del sito!

Pubblicità