Disclaimer :
Questo documento non è più valido 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
# 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 ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|