Sommario:
Come installare il sistema compilatore C/C++ distcc –a distribuito liberamente
DESCRIZIONE:
DA FARE: inserire qui delle parole utili
ALLEGATI:
Il pacchetto distcc, disponibile su:
http://distcc.samba.org/ftp/distcc/distcc-2.12.1.tar.bz2 (317,8kB)
PREREQUISITI:
Questo hint si aspetta che si abbiano due sistemi lfs funzionanti con la
stessa versione di gcc, binutils e glibc, e una rete funzionante.
HINT:
INDICE
1. Introduzione
Compilare codice sorgente può richiedere molto tempo. Questo hint descrive
come installare distcc, un tool che può essere utilizzato per distribuire
la compilazione trasversalmente su molteplici macchine in una rete.
La macchina a cui si sta davanti e da cui parte la compilazione è il client.
Le macchine che svolgono il lavoro sono i server.
Ogni macchina può contenere sia un server che un client.
Questo documento è basato su la documentazione di distcc, scritto da Martin Pool
Tempo stimato di compilazione: 0.20 SBU
Richiesta spazio disco stimato: 5.4 MB
2. File necessari
Il pacchetto distcc, disponibile su:
http://distcc.samba.org/ftp/distcc/distcc-2.12.1.tar.bz2 (317,8kB)
3. Installazione
Per installare il pacchetto eseguire i seguenti comandi:
./configure --sysconfdir=/etc && make && make install
3. Configurazione server
Per rendere eseguibile distcc come server occorre creare un nuovo utente. Assicurarsi che /tmp sia scrivibile da questo utente:
useradd distcc
Per avviare il demone utilizzare il seguente comando:
nice -n 19 distccd --daemon
Per fare in modo che distcc venga eseguito all'avvio utilizzare questo script:
cat > /etc/rc.d/init.d/distcc << "EOF" #!/bin/bash source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Starting distributed compile daemon" nice -n 19 /usr/local/bin/distccd --daemon ;; stop) echo "Stopping distributed compile daemon" killproc /usr/local/bin/distccd ;; *) echo "Usage: $0 {start|stop|reload|restart|status}" exit 1 ;; esac EOF chmod 700 /etc/rc.d/init.d/distcc
E creare i seguenti symlink:
cd /etc/rc.d/init.d && ln -sf ../init.d/distcc ../rc0.d/K00distcc && ln -sf ../init.d/distcc ../rc2.d/S99distcc && ln -sf ../init.d/distcc ../rc3.d/S99distcc && ln -sf ../init.d/distcc ../rc5.d/S99distcc && ln -sf ../init.d/distcc ../rc6.d/K00distcc
4. Configurazione client
Per rendere distcc eseguibile come client eseguire le seguenti istruzioni:
./configure --sysconfdir=/etc && make && make install
Per far conoscere a distcc chi sono i server editare il file seguente:
mkdir ~/.distcc && cat > /root/.distcc/hosts << "EOF" localhost #your own machine 192.168.0.201 #the first server, 192.168.0.202 #and the second server EOF
Assicurarsi che distcc sia rintracciato prima del proprio compilatore reale, creare i symlink:
ln -s /usr/local/bin/distcc /bin/c++ && ln -s /usr/local/bin/distcc /bin/cc && ln -s /usr/local/bin/distcc /bin/g++ && ln -s /usr/local/bin/distcc /bin/gcc
5. Utilizzo
Invece di utilizzare il seguente comando:
./configure && make && make install
Utilizzare questi comandi:
./configure && make -j 6 && make install
Ogni server può gestire tre client per CPU a meno che sia configurato
diversamente, così il comando sopra può tenere due server.
6. Insidie
Non utilizzare la versione 1.12. Questa versione contiene un bug che
causa l'esecuzione di distccd come utente diverso da distcc. Versioni
più vecchie e più recenti dovrebbero funzionare bene.
7. Letture raccomandate
La documentazione inclusa con distcc
I seguenti hint:
parallelcompiling.txt
RICONOSCIMENTI:
Il programmatore di questa utilità:
Martin Pool mbp@samba.org
L'autore di parallelcompiling.txt
Daniel Baumann daniel.baumann@panthera-systems.net
ChangeLog.
9 aprile 2004 Rilascio iniziale