====== Distributed compiling ====== * **AUTORE**: Cedric de Wijs * **TRADUTTORE**: Sandro Cardelli * **DATA**: 9 aprile 2004 * **LICENZA**: GNU Public Licence **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 \\ - Introduzione - File necessari - Installazione server - Installazione client - Utilizzo - Insidie - Letture consigliate 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 \\ L'autore di parallelcompiling.txt Daniel Baumann \\ ChangeLog. \\ 9 aprile 2004 Rilascio iniziale