Gentoo Logo

Disclaimer : Questo manuale è stato sostituito da una nuova versione e non è più mantenuto.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


3. Caratteristiche di Portage

Indice:

3.a. Caratteristiche di Portage

Portage ha molte altre caratteristiche che rendono Gentoo ancora migliore. Molte di queste comprendono strumenti software che migliorano le prestazioni, l'affidabilità, la sicurezza, ...

Per abilitare o disabilitare alcune caratteristiche di Portage, bisogna modificare la variabile FEATURES di /etc/portage/make.conf, che contiene varie keyword separate da spazi bianchi. In molti casi si devono installare ulteriori strumenti sui quali sono basate le caratteristiche.

Non sono elencate qui tutte le caratteristiche che Portage supporta. Per una descrizione completa si veda la manpage make.conf:

Codice 1.1: Vedere la manpage make.conf

$ man make.conf

Per scoprire quali sono le caratteristiche di default, eseguire emerge --info e cercare la variabile FEATURES o eseguire un grep:

Codice 1.2: Scoprire quali caratteristiche sono già impostate

$ emerge --info | grep FEATURES

3.b. Compilazione Distribuita

Usare distcc

distcc è un programma per distribuire la compilazione su diverse macchine, non necessariamente identiche, su una rete. Il client distcc trasmette tutte le informazioni necessarie ai server distcc che vengono resi disponibili tramite l'esecuzione di distccd, in modo che possano compilare parte del codice sorgente per il client. Il risultato è un tempo di compilazione inferiore.

E' possibile trovare più informazioni su distcc (e informazioni su come deve funzionare con Gentoo) nella nostra Documentazione Gentoo su distcc.

Installare distcc

Distcc include un strumento grafico per tenere sotto controllo i task che il computer sta inviando per la compilazione. Se si usa Gnome si inserisca 'gnome' nella variabile USE. Se non si usa Gnome e si desidera comunque utilizzare il monitor, si inserisca 'gtk' nella variabile USE.

Codice 2.1: Installare distcc

# emerge distcc

Attivare il supporto di Portage

Aggiungere distcc alla variabile FEATURES in /etc/portage/make.conf. Modificare la variabile MAKEOPTS a proprio piacimento. In "-jX" la X è il numero di CPU che eseguono distccd (incluso l'host attuale) più uno, ma si potrebbero avere migliori risultati con altri numeri.

Eseguire distcc-config e impostare la lista di server distcc disponibili. Per esempio si assume che i server distcc disponibili sono 192.168.1.102 (l'host attuale), 192.168.1.103 e 192.168.1.104 (due host remoti):

Codice 2.2: Configurare distcc per usare tre server disponibili DistCC

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Non dimenticarsi di eseguire anche il demone distccd:

Codice 2.3: Avviare il demone distccd

# rc-update add distccd default
# /etc/init.d/distccd start

3.c. Cache per la compilazione

Cosa è ccache

ccache è un veloce gestore cache per il compilatore. Dopo aver compilato un programma, esso immagazzina i risultati intermedi, in modo che se si dovesse ricompilare lo stesso programma, il tempo di compilazione sia notevolmente ridotto. La prima volta che si esegue ccache, la sua esecuzione sarà molto più lenta ad una normale compilazione. Ricompilazioni sequenziali dovrebbero invece essere più veloci. ccache è utile solamente se si sta ricompilando più volte la stessa applicazione; ciò è praticamente utile solo agli sviluppatori software.

Per maggiori informazioni su ccache, è possibile consultare la homepage di ccache.

Avvertenza: È risaputo che ccache causa numerosi fallimenti nella compilazione. Talvolta ccache preserva oggetti di codice inutili o file corrotti, che portano alla mancata compilazione del pacchetto. Se ciò accade (se si ricevono errori come "File not recognized: File truncated"), provare a ricompilare l'applicazione disabilitando ccache ((FEATURES="-ccache" in /etc/portage/make.conf) prima di aprire un bug report. A meno che non si debbano eseguire lavori come sviluppatore, non abilitare ccache.

Installare ccache

Per installare ccache, eseguire emerge ccache:

Codice 3.1: Installare ccache

# emerge ccache

Attivare il supporto di Portage

Aprire /etc/portage/make.conf e aggiungere ccache alla variabile FEATURES. Poi, aggiungere una nuova variabile chiamata CCACHE_SIZE e impostarla a "2G":

Codice 3.2: Editare CCACHE_SIZE in /etc/portage/make.conf

CCACHE_SIZE="2G"

Per controllare se ccache funziona, si possono vedere le statistiche. Portage usa una diversa directory home ccache e si deve impostare la variabile CCACHE_DIR:

Codice 3.3: Esaminare le statistiche di ccache

# CCACHE_DIR="/var/tmp/ccache" ccache -s

Il /var/tmp/ccache è la directory home di default di Portage; se si desidera cambiare questa impostazione modificare la variabile CCACHE_DIR in /etc/portage/make.conf.

Se si esegue ccache, si usa la posizione di default di ${HOME}/.ccache, ed è per questo che si deve impostare la variabile CCACHE_DIR quando si cercano le statistiche (Portage) ccache.

Usare ccache per la compilazione di C non-Portage

Se si desidera usare ccache per compilazioni non-Portage, si aggiunga /usr/lib/ccache/bin all'inizio della variabile PATH (prima di /usr/bin). Può essere fatto modificando .bash_profile nella directory home del proprio utente. Usare .bash_profile è un modo per definire la variabile PATH.

Codice 3.4: Modificare .bash_profile

PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"

3.d. Supporto per pacchetti binari

Creare pacchetti precompilati

Portage supporta l'installazione di pacchetti precompilati. Anche se Gentoo non fornisce pacchetti precompilati (tranne GRP), Portage può essere informato dei pacchetti precompilati.

Per creare un pacchetto precompilato si può usare quickpkg se il pacchetto è già installato sul sistema, o emerge con le opzioni --buildpkg o --buildpkgonly.

Se si desidera che Portage crei pacchetti precompilati di ogni singolo pacchetto che si installa, aggiungere buildpkg alla variabile FEATURES.

Supporto più esteso per le impostazioni sui pacchetti precompilati può essere ottenuto con il catalyst. Per ulteriori informazioni sul catalyst leggere le Domande frequenti su Catalyst.

Installare pacchetti precompilati

Anche se Gentoo non li fornisce, si può creare un repository centrale dove mettere i pacchetti precompilati. Se si desidera usare questo repository, si deve far puntare la variabile PORTAGE_BINHOST ad esso. Per esempio, se i pacchetti precompilati sono su ftp://buildhost/gentoo:

Codice 4.1: Impostare PORTAGE_BINHOST in /etc/portage/make.conf

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Quando si desidera installare un pacchetto precompilato, si deve aggiungere l'opzione --getbinpkg al comando emerge accanto all'opzione --usepkg. Il primo (--getbinpkg) dice a emerge di scaricare il pacchetto precompilato dal server precedentemente definito mentre il secondo (--usepkg) chiede a emerge di cercare di installare il pacchetto precompilato prima di scaricare i sorgenti e compilarlo.

Per esempio, per installare gnumeric con i pacchetti precompilati:

Codice 4.2: Installare il pacchetto precompilato gnumeric

# emerge --usepkg --getbinpkg gnumeric

Più informazioni sulle opzioni di emerge con i pacchetti precompilati possono essere trovate nella manpage emerge:

Codice 4.3: Vedere manpage emerge

$ man emerge

3.e. Scaricare file

Scaricamenti paralleli

Quando si stanno emergendo una serie di pacchetti, Portage può scaricare i file sorgenti del prossimo pacchetto nella lista, anche se sta compilando un altro pacchetto. Per usare questa opzione, aggiungere "parallel-fetch" alla propria FEATURES. Da notare che questa feature è già attiva, quindi non si deve specificatamente abilitarla.

Userfetch

Quando Portage è eseguito da root, FEATURES="userfetch" permette a Portage di levarsi dai privilegi di root mentre scarica i sorgenti di un pacchetto. Questo è un piccolo miglioramento di sicurezza.

3.f. Prelevare snapshot del Portage convalidati

Come amministratori del sistema, si può decidere di aggiornare il proprio albero del Portage solo attraverso uno snapshot del Portage convalidato crittograficamente rilasciato dall'infrastruttura Gentoo. Questo assicura che che nessun mirror rsync malevolo aggiunga codice o pacchetti indesiderati all'albero che si sta scaricando.

Per configurare Portage, si deve prima creare un deposito sicuro dove scaricare e accettare le chiavi fornite dall'Infrastruttura Gentoo responsabile per la firma degli snapshot dell'albero di Portage. Naturalmente, se si vuole farlo, è possibile convalidare questa chiave GPG come indicato nelle appropriate indicazioni (ad esempio verificando l'impronta. Puoi trovare la lista delle chiavi GPG usate dal team di release engineering sulla loro pagina.

Codice 6.1: Creare un deposito sicuro per Portage

# mkdir -p /etc/portage/gpg
# chmod 0700 /etc/portage/gpg
(... Sostituire le chiavi con quelle menzionate nella pagina release 
engineering ...)
# gpg --homedir /etc/portage/gpg --keyserver subkeys.pgp.net --recv-keys 0x239C75C4 0x96D8BF6D
# gpg --homedir /etc/portage/gpg --edit-key 0x239C75C4 trust
# gpg --homedir /etc/portage/gpg --edit-key 0x96D8BF6D trust

Successivamente, modificare /etc/portage/make.conf abilitando il supporto per la convalida degli snapshot di Portage firmati (usando FEATURES="webrsync-gpg") e disabilitando l'aggiornamento di Portage attraverso il metodo ordinario emerge --sync.

Codice 6.2: Aggiornare Portage per la convalida degli snapshot firmati

FEATURES="webrsync-gpg"
PORTAGE_GPG_DIR="/etc/portage/gpg"
SYNC=""

Fatto. La prossima volta che verrà eseguito emerge-webrsync, solo gli snapshot con una firma valida verranno incorporati nel proprio sistema.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 24 luglio 2012

Questa traduzione non è più mantenuta

Oggetto: Si scoprono le caratteristiche di Portage, tra le quali il supporto per le compilazioni distribuite, ccache e altre.

Sven Vermeulen
Autore

Grant Goodyear
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Joshua Saddler
Redazione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Pacella
Traduzione

Enrico Morelli
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.