IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

distcc - Online nel cloud

Esegui distcc nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando distcc che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


distcc - compilatore distribuito C/C++/ObjC con estensioni distcc-pump

SINOSSI


distcc [COMPILATORE OPZIONI]

distcc [COMPILATORE OPZIONI]

[COMPILATORE OPZIONI]

distcc [DISTCC OPZIONI]

DESCRIZIONE


distcc distribuisce la compilazione del codice C su più macchine su una rete. distcc
dovrebbe sempre generare gli stessi risultati di una compilazione locale, è semplice da installare e
uso, ed è spesso molto più veloce di una compilazione locale.

Questa versione incorpora semplice distcc e un miglioramento chiamato modalità pompa o
distcc-pompa.

Per ogni lavoro, distcc in modalità normale invia il codice sorgente preelaborato completo e
argomenti del compilatore attraverso la rete dal client a un server di compilazione. In pompa
modalità, distcc invia il codice sorgente e i file di intestazione inclusi in modo ricorsivo (esclusi quelli
dalle directory di intestazione di sistema predefinite), in modo che sia la preelaborazione che la compilazione
può avvenire sui server di compilazione. Questo accelera la consegna delle compilation da
fino a un ordine di grandezza su pianura distcc.

La compilazione è guidata da una macchina client, che è tipicamente la workstation dello sviluppatore
o portatile. Il client distcc viene eseguito su questa macchina, così come make, il preprocessore (se
non viene utilizzata la modalità pump di distcc), il linker e altre fasi del processo di compilazione. Qualunque
numero di macchine volontarie fungono da server di compilazione e aiutano il cliente a costruire il
programma, eseguendo il distcc(1) demone, compilatore C e assembler come richiesto.

distcc può essere eseguito su entrambi i socket TCP (sulla porta 3632 per impostazione predefinita) o attraverso un tunnel
comando come SSH(1). Per le connessioni TCP i volontari devono eseguire il distcc(1) demone
direttamente o da inetd. Per le connessioni SSH distccd deve essere installato ma dovrebbe
non essere in ascolto di connessioni.

Le connessioni TCP dovrebbero essere utilizzate solo su reti sicure perché non c'è nessun utente
autenticazione o protezione del codice sorgente o oggetto. Le connessioni SSH sono in genere del 25%
più lento a causa del sovraccarico del processore per la crittografia, anche se questo può variare notevolmente
a seconda delle CPU, della rete e del programma in costruzione.

distcc è pensato per essere usato con GNU Make's -j opzione, che esegue diversi compilatori
processi contemporaneamente. distcc distribuisce i lavori su entrambe le CPU locali e remote.
Poiché distcc è in grado di distribuire la maggior parte del lavoro attraverso la rete, una maggiore
è possibile utilizzare il livello di concorrenza rispetto alle build locali. Come regola generale, il -j APPREZZIAMO
dovrebbe essere impostato su circa il doppio del numero totale di CPU server disponibili ma soggetto a
limitazioni del cliente. Questa impostazione consente il massimo interlacciamento delle attività bloccate
in attesa di disco o rete IO. Nota che distcc può funzionare anche con altri controlli di compilazione
strumenti, come SCons, in cui è necessario regolare impostazioni di concorrenza simili.

I -j impostazione, soprattutto per grandi valori di -J, deve tenere conto del carico della CPU su
il cliente. Potrebbero essere necessarie misure aggiuntive per ridurre il carico del client. Per esempio,
il collegamento simultaneo dovrebbe essere severamente ridotto utilizzando blocchi ausiliari. L'effetto di
altre attività di compilazione, come la compilazione Java durante la creazione di codice misto, dovrebbero essere
considerato. Il --localslots_cpp il parametro è impostato di default su 16. Questo limita il
numero di processi simultanei che eseguono la preelaborazione in modalità semplice distcc (non pompa).
Pertanto, più grande -j valori superiori a 16 possono essere utilizzati senza sovraccaricare un client con CPU singola
a causa della pre-elaborazione. Valori così grandi possono velocizzare parti della build che non lo fanno
coinvolgono compilazioni C, ma potrebbero non essere utili per l'efficienza di distcc in modalità semplice.

Al contrario, utilizzando la modalità pompa e diciamo 40 server, un'impostazione di -j80 o più grande può essere
appropriato anche per client con CPU singola.

Si consiglia vivamente di installare la stessa versione del compilatore su tutte le macchine
partecipando a una costruzione. I compilatori incompatibili possono causare compilazioni o collegamenti misteriosi
fallimenti.

AVVIO RAPIDO


1 Per ogni macchina, scaricare distcc, decomprimere e installare.

2 Su ciascuno dei server, eseguire distcc --demone con --permettere opzioni per limitare
accesso.

3 Inserisci i nomi dei server nel tuo ambiente:
$ export DISTCC_HOSTS='localhost rosso verde blu'

4 Costruisci!
$ make -j8 CC=distcc

AVVIO RAPIDO PER DISTCC-POMPA MODE


Procedere come sopra, ma al punto 3 specificare che gli host remoti devono sostenere l'onere di
pre-elaborazione e che i file inviati in rete devono essere compressi:

$ export DISTCC_HOSTS='--randomizza localhost red,cpp,lzo green,cpp,lzo
blu,cpp,lzo'

I --rendi casuale L'opzione impone un utilizzo uniforme dei server di compilazione. Mentre otterrai
alcuni benefici dalla modalità pump di distcc con solo pochi server, ottieni un vantaggio crescente
con più CPU server (fino a centinaia!). Avvolgi la tua build all'interno del comando della pompa,
qui assumendo 10 server:

$ distcc-pompa make -j20 CC=distcc

COME PLAIN (SENZA POMPA) DISTCC OPERE


distcc esegue solo il compilatore e l'assemblatore in remoto. Con semplice distcc, il
il preprocessore deve sempre essere eseguito localmente perché deve accedere a vari file di intestazione su
la macchina locale che potrebbe non essere presente, o potrebbe non essere la stessa, sul volontario. Il
allo stesso modo il linker deve esaminare librerie e file oggetto, quindi deve essere eseguito localmente.

Il compilatore e l'assemblatore accettano solo un singolo file di input (il sorgente preelaborato) e
produrre un singolo output (il file oggetto). distcc spedisce questi due file attraverso il
rete e può quindi eseguire il compilatore/assemblatore in remoto.

Fortunatamente, per la maggior parte dei programmi che eseguono il preprocessore è relativamente economico e il
linker è chiamato relativamente poco frequente, quindi la maggior parte del lavoro può essere distribuita.

distcc esamina la sua riga di comando per determinare quale di queste fasi viene invocata, e
se il lavoro può essere distribuito.

COME DISTCC-POMPA MODE OPERE


In modalità pompa, distcc esegue anche il preprocessore in remoto. Per fare ciò, il preprocessore deve
avere accesso a tutti i file a cui avrebbe avuto accesso se fosse stato eseguito localmente. In
la modalità pompa, quindi, distcc raccoglie tutte le intestazioni incluse in modo ricorsivo, eccetto le
quelli che sono intestazioni di sistema predefinite e li invia insieme al file sorgente al
server di compilazione.

In modalità distcc-pump, il server decomprime l'insieme di tutti i file sorgente in un file temporaneo
directory, che contiene un albero di directory che rispecchia la parte del file system che
è rilevante per la pre-elaborazione, inclusi i collegamenti simbolici.

Il compilatore viene quindi eseguito dal percorso nella directory temporanea che corrisponde al
directory di lavoro corrente sul client. Per trovare e trasmettere le molte centinaia di file
che spesso fanno parte di una singola compilation, la modalità pompa utilizza un'inclusione incrementale
algoritmo di analisi. Il server include è un programma Python che lo implementa
algoritmo. Il comando distcc-pump avvia il server include in modo che durante la build
può rispondere alle query include tramite i comandi distcc.

Il server include utilizza l'analisi statica del linguaggio macro per gestire il condizionale
compilazione e include calcolati. Usa la proprietà che quando un dato file di intestazione ha
già analizzato per gli include, non è necessario farlo di nuovo se tutti gli include
le opzioni (-I) sono invariate (insieme ad altre condizioni).

Per build di grandi dimensioni, i file di intestazione sono inclusi, in media, centinaia di volte ciascuno. Insieme a
modalità distcc-pump ciascuno di questi file viene analizzato solo poche volte, forse solo una volta, invece
di essere preelaborato centinaia di volte. Inoltre, ogni file sorgente o intestazione è ora
compresso solo una volta, perché il server di inclusione memorizza i file compressi. Come un
risultato, il tempo impiegato per la preparazione delle compilazioni può diminuire fino a un ordine di grandezza
sulla pre-elaborazione di pianura distcc.

Poiché distcc in modalità pump è in grado di inviare file fino a circa dieci volte più velocemente, build
la velocità può aumentare di 3 volte o più per build di grandi dimensioni rispetto alla semplice modalità distcc.

RESTRIZIONI PER POMPA MODE


L'utilizzo della modalità pump richiede che sia il client che i server utilizzino la versione 3.0 o successiva di distcc e
distccd (rispettivamente).

L'analisi di inclusione incrementale della modalità distc-pump si basa sul presupposto fondamentale
che i file di origine e di intestazione non cambiano durante il processo di compilazione. Qualche costruzione complessa
i sistemi, come quello per il kernel Linux 2.6, non soddisfano completamente questo requisito. Per
superare tali problemi e altri casi angolari come i percorsi di file assoluti negli include, vedere
, il include_server(1) pagina man.

Un altro presupposto importante è che la configurazione di inclusione di tutte le macchine deve essere
identico. Pertanto le intestazioni nel percorso di sistema predefinito devono essere le stesse su tutti i server
e tutti i clienti. Se viene utilizzata un'installazione standard del compilatore GNU, allora questo requisito
si applica a tutte le librerie i cui file di intestazione sono installati sotto / usr / include or
/usr/local/include/. Si noti che l'installazione di pacchetti software spesso porta a ulteriori
headers che vengono inseriti nelle sottodirectory di entrambi.

Se questa ipotesi non regge, è possibile interrompere le build con distcc-pump
modalità, o peggio, per ottenere risultati errati senza preavviso. Attualmente questa condizione non è
verificato ed è nella nostra lista delle cose da fare per risolvere questo problema.

Un modo semplice per garantire che le configurazioni di inclusione siano identiche consiste nell'utilizzare un
compilatore che definisce un percorso di ricerca di sistema predefinito limitato alle directory del
installazione del compilatore.

Vedere la include_server(1) manuale per maggiori informazioni sui sintomi e le cause delle violazioni
delle ipotesi sulla modalità distcc-pump.

OPZIONE SOMMARIO


La maggior parte delle opzioni passate a distcc vengono interpretate come opzioni del compilatore. Le seguenti opzioni
sono compresi da distcc stesso. Se viene specificata una di queste opzioni, distcc non lo farà
invocare il compilatore.

--Aiuto Visualizza le istruzioni di riepilogo.

--versione
Visualizza la versione del client distcc.

--show-host
Visualizza l'elenco degli host che distcc utilizzerebbe. Vedere la sezione Specifiche dell'host.

--scan-include
Visualizza l'elenco dei file che distcc invierebbe alla macchina remota, come
calcolato dal server di inclusione. Questa è una (sovra)approssimazione conservativa di
file che verrebbero letti dal compilatore C. Questa opzione funziona solo in modalità pompa.
Vedere la sezione "Come funziona la modalità pompa Distcc" per i dettagli su come viene calcolata.

L'elenco prodotto da distcc --scan-include conterrà una voce per riga. Ogni
line contiene una categoria seguita da un percorso. La categoria è una di FILE, SYMLINK,
DIRECTORY, o SYSTEMDIR:

RISORSE indica un file sorgente o un file di intestazione che verrebbe inviato al server distcc
ospite.

COLLEGAMENTO SIMILE indica un collegamento simbolico che verrebbe inviato all'host del server distcc.

DIRECTORY indica una directory che potrebbe essere necessaria per compilare il sorgente
file. Ad esempio, potrebbe essere necessaria una directory "foo" a causa di un'inclusione di
form #include "pippo/../bar.h". Tali directory verrebbero create sul distcc
ospite del server.

DIR.SISTEMA indica una directory di inclusione di sistema, ovvero una directory che si trova sul
percorso di inclusione predefinito del compilatore, ad esempio "/ usr / include"; tali directory sono
presunto essere presente sull'host del server distcc, e quindi non verrebbe inviato al
host del server distcc.

-j Visualizza il livello di concorrenza di distcc, come calcolato dall'elenco degli host; è il
numero massimo di lavori in sospeso emessi da questo client a tutti i server. Di
predefinito questo sarà quattro volte il numero di host nell'elenco degli host, a meno che il
L'opzione /LIMIT è stata utilizzata nell'elenco degli host. Vedere la sezione Specifiche dell'host.

INSTALLAZIONE DISTCC


Esistono tre modi diversi per chiamare distcc, per adattarsi a circostanze diverse:

distcc può essere installato sotto il nome del vero compilatore, per intercettare le chiamate a
it ed eseguirli in remoto. Questo compilatore "mascherato" ha la più ampia compatibilità
con alberi di sorgenti esistenti ed è conveniente quando si desidera utilizzare distcc per tutti
compilazione. Il fatto che distcc venga utilizzato è trasparente per i makefile.

distcc può essere anteposto alle righe di comando del compilatore, come "distcc cc -c hello.c"
o CC="distcc gcc". Questo è comodo quando vuoi usare distcc solo per alcuni
compilation o per provarlo, ma può causare problemi con alcuni makefile o
versioni di libtool che presuppongono che $CC non contenga uno spazio.

Infine, distcc può essere utilizzato direttamente come compilatore. "cc" è sempre usato come
nome del compilatore reale in questa modalità "implicita". Questo può essere conveniente per
uso interattivo quando la modalità "esplicita" non funziona ma non è realmente consigliata
per nuovo uso.

Ricorda che non dovresti usare due metodi per chiamare distcc contemporaneamente. Se tu
stanno usando una directory mascherata, non cambiare CC e/o CXX, basta inserire la directory in anticipo
sul tuo PERCORSO. Se non stai usando una directory mascherata, dovrai cambiare CC
e/o CXX, o modificare i makefile per chiamare esplicitamente distcc.

Il mascheramento


L'idea di base è creare una "directory mascherata" che contenga collegamenti dal nome di
il vero compilatore al binario distcc. Questa directory viene inserita all'inizio del PATH, quindi
che le chiamate al compilatore vengono intercettate e viene invece eseguito distcc. distcc quindi rimuove
stesso dal PATH per trovare il vero compilatore.

Per esempio:

# mkdir /usr/lib/distcc/bin
# cd /usr/lib/distcc/bin
# ln -s ../../../bin/distcc gcc
# ln -s ../../../bin/distcc cc
# ln -s ../../../bin/distcc g++
# ln -s ../../../bin/distcc c++

Quindi, per utilizzare distcc, un utente deve solo inserire la directory /usr/lib/distcc/bin all'inizio
il PATH e aver impostato un elenco di host in DISTCC_HOSTS o un file. distcc gestirà il
riposo.

Nota che questa directory mascherata deve trovarsi sul PATH prima della directory che
contiene gli attuali compilatori con gli stessi nomi e che tutti i programmi ausiliari che
queste chiamate di compilatori (come as o ld) devono essere trovate anche sul PATH in una directory
dopo la directory masquerade poiché distcc chiama il compilatore reale con un PATH
valore che ha tutte le directory fino alla directory masquerade inclusa.

È possibile ottenere un "errore di ricorsione" in modalità mascherata, il che significa che distcc è
in qualche modo ritrovando se stesso, non il vero compilatore. Questo può indicare che ne hai due
directory mascherate sul PATH, probabilmente a causa di due installazioni distcc in
posizioni diverse. Può anche indicare che stai cercando di mescolare "mascherato" e
operazione "esplicita".

Gli errori di ricorsione possono essere evitati utilizzando script di shell invece di collegamenti. Ad esempio, in
/usr/lib/distcc/bin crea un file cc che contiene:

#!/bin/sh
distcc /usr/bin/gcc "$@"

In questo modo, non dipendiamo dal fatto che distcc debba individuare il vero gcc indagando
la variabile PATH. Viene invece fornita esplicitamente la posizione del compilatore.

UTILIZZO DISTCC CON CCACHE


ccache è un programma che velocizza la creazione di software memorizzando nella cache i risultati delle compilazioni.
ccache viene normalmente chiamato prima di distcc, in modo che i risultati vengano recuperati da un normale
cache. Potrebbe essere necessaria una certa sperimentazione per creare makefile idiosincratici
tutto funziona insieme.

Il metodo più affidabile è impostare

CCACHE_PREFIX="distcc"

Questo dice a ccache di eseguire distcc come wrapper attorno al vero compilatore. ccache usa ancora
il vero compilatore per rilevare gli aggiornamenti del compilatore.

ccache può quindi essere eseguito utilizzando una directory mascherata or IMPOSTANDO

CC="ccache gcc"

A partire dalla versione 2.2, ccache non memorizza nella cache la compilazione da sorgenti preelaborate e così sarà
non ottenere mai un riscontro nella cache se viene eseguito da distccd o distcc. Deve essere eseguito solo sul
lato client e prima di distcc per essere utilizzato.

La modalità pump di distcc non è compatibile con ccache.

HOST SPECIFICHE TECNICHE


Una "lista host" dice a distcc quali macchine usare per la compilazione. In ordine, distcc sembra
nel $DISTCC_HOSTS variabile d'ambiente, l'utente $DISTCC_DIR/host file e il file
file host a livello di sistema. Se non è possibile trovare un elenco di host, distcc emette un avviso e compila
localmente.

L'elenco degli host è un semplice elenco separato da spazi di specifiche dell'host. Il più semplice
e la forma più comune è un nome host, come

localhost rosso green blu

distcc preferisce gli host all'inizio dell'elenco, quindi le macchine dovrebbero essere elencate in
ordine decrescente di velocità. In particolare, quando può essere eseguita una sola compilazione (come
come da uno script configure), viene utilizzata la prima macchina elencata (ma vedi --rendi casuale sotto).

collocazione localhost al punto giusto della lista è importante per ottenere buone prestazioni.
Poiché l'overhead per l'esecuzione dei lavori in locale è basso, localhost dovrebbe normalmente essere il primo.
Tuttavia, è importante che il client abbia abbastanza cicli liberi per eseguire i lavori locali e
il client distcc. Se il cliente è più lento dei volontari, o se sono molti
volontari, allora il cliente dovrebbe essere inserito più avanti nell'elenco o non farlo affatto. Come un generale
regola, se la velocità aggregata della CPU del client è inferiore a un quinto del totale, allora
il cliente dovrebbe essere lasciato fuori dalla lista.

Se hai un grande cluster di build condiviso e un singolo file host condiviso, le regole di cui sopra
farebbe sì che le prime macchine nel file hosts vengano provate per prime anche se
è probabile che siano più occupati delle macchine più avanti nell'elenco. Per evitare ciò, inserisci la parola chiave
--rendi casuale nell'elenco degli host. Ciò farà sì che l'elenco degli host venga randomizzato, il che
dovrebbe migliorare leggermente le prestazioni per i cluster di build di grandi dimensioni.

Ci sono due nomi di host speciali --localslot ed --localslots_cpp che sono utili per
regolazione del carico sulla macchina locale. Il --localslot host specifica quanti lavori che
non può essere eseguito in remoto che può essere eseguito contemporaneamente sulla macchina locale, mentre
--localslots_cpp controlla quanti preprocessori verranno eseguiti in parallelo sul locale
macchina. L'ottimizzazione di questi valori può migliorare le prestazioni. Il collegamento su progetti di grandi dimensioni può richiedere
grandi quantità di memoria. Esecuzione di linker paralleli, che non possono essere eseguiti in remoto,
potrebbe forzare lo scambio della macchina, il che riduce le prestazioni rispetto alla semplice esecuzione dei lavori in
sequenza senza scambiare. Ottenere il numero giusto di preprocessori paralleli
consente di utilizzare fattori paralleli più grandi con make, poiché la macchina locale ora ne ha alcuni
meccanismo per misurare l'utilizzo delle risorse locali.

Infine c'è la voce host

Le prestazioni dipendono dai dettagli della sorgente e dai makefile utilizzati per il progetto e
la macchina e la velocità della rete. Sperimentare con diverse impostazioni per l'elenco degli host
ed -j fattore può migliorare le prestazioni.

La sintassi è

DISTCC_HOSTS = SPECIFICA HOST...
HOSTSPEC = HOST_LOCALE | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| OPZIONE_GLOBALE
| ZEROCONF
LOCAL_HOST = host locale[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [UTENTE]@HOSTID[/LIMIT][:COMANDO][OPZIONI]
TCP_HOST = HOSTID[:PORTA][/LIMITE][OPZIONI]
OLDSTYLE_TCP_HOST = HOSTID[/LIMIT][:PORT][OPZIONI]
HOSTID = NOME HOST | IPV4 | IPV6
OPZIONI = ,OPZIONE[OPZIONI]
OPZIONE = lzo | cpp
OPZIONE_GLOBALE = --randomizza
ZEROCONF = +zeroconf

Ecco alcuni esempi individuali della sintassi:

localhost
La parola letterale "localhost" è interpretata appositamente per far sì che le compilazioni siano
eseguito direttamente, piuttosto che passato a un demone sulla macchina locale. Se fate
desidera connettersi a un demone sulla macchina locale per il test, quindi dare il
l'indirizzo IP della macchina o il nome host reale. (Questo sarà più lento.)

IPV6 Un indirizzo IPv6 letterale racchiuso tra parentesi quadre, ad esempio [::1]

IPV4 Un indirizzo IPv4 letterale, come 10.0.0.1

HOSTNAME
Un nome host da cercare utilizzando il resolver.

:PORTA Connettersi a un numero di porta decimale specificato, anziché al valore predefinito di 3632.

@OSTIDE
Connettiti all'host su SSH, piuttosto che su TCP. Le opzioni per la connessione SSH possono
essere impostato in ~ / .ssh / config

UTENTE@ Connettiti all'host su SSH come nome utente specificato.

:COMANDO
Connettiti su SSH e usa un percorso specificato per trovare il server distccd. Questo è
normalmente necessario solo se per qualche motivo non è possibile installare distccd in una directory
sul PERCORSO predefinito per le connessioni SSH. Usa questo se ricevi errori come "distccd:
comando non trovato" in modalità SSH.

/LIMITE È possibile aggiungere un limite decimale a qualsiasi specifica host per limitare il numero di
lavori che questo client invierà alla macchina. Il limite predefinito è quattro per
host (due per localhost), ma potrebbe essere ulteriormente limitato dal server. Dovresti
è necessario aumentarlo solo per i server con più di due processori.

, lzo Abilita la compressione LZO per questo host TCP o SSH.

, cpp Abilita la modalità distcc-pump per questo host. Nota: il comando build deve essere racchiuso in
lo script distcc-pump per avviare il server di inclusione.

--rendi casuale
Randomizza l'ordine dell'elenco host prima dell'esecuzione.

+zeroconf
La sezione opzione is esclusivamente disponibile if distcc Prima compilato con avah supporto abilitato at
configure tempo. Quando questa voce speciale è presente nell'elenco degli host, distcc lo farà
utilizzare Avahi Zeroconf DNS Service Discovery (DNS-SD) per individuare qualsiasi distccd available
server sulla rete locale. Ciò evita la necessità di elencare esplicitamente l'host
nomi o indirizzi IP delle macchine server distcc. I server distccd devono avere
stato avviato con l'opzione "--zeroconf" per distccd. Un avvertimento importante è che
nell'implementazione corrente, la modalità pompa (",cpp") e la compressione (",lzo") saranno
non essere mai utilizzato per host che si trovano tramite zeroconf.

Ecco un esempio che mostra alcune possibilità:

host locale/2 @bigman/16:/opt/bin/distccd vecchia macchina:4200/1
# Cartman is giù
distante/3,lzo

I commenti sono consentiti nelle specifiche dell'host. I commenti iniziano con un cancelletto/cancelletto (#)
e corri fino alla fine della linea.

Se un host nell'elenco non è raggiungibile, distcc emetterà un avviso e ignorerà quell'host per
circa un minuto.

COMPRESSIONE


I lzo l'opzione host specifica che la compressione LZO deve essere utilizzata per il trasferimento dei dati,
inclusi sorgente preelaborata, codice oggetto e messaggi di errore. La compressione è di solito
economico su reti più lente di 100Mbps, ma i risultati possono variare a seconda della rete,
processori e albero dei sorgenti.

L'abilitazione della compressione fa sì che il client e il server distcc utilizzino più tempo della CPU, ma meno
traffico di rete. Il tempo CPU aggiunto è insignificante per la modalità pompa. La compressione
il rapporto è in genere 4:1 per l'origine e 2:1 per il codice oggetto.

L'uso della compressione richiede che sia il client che il server utilizzino almeno la versione 2.9 di distcc.
Non è richiesta alcuna configurazione del server: il server risponde sempre con risposte compresse a
richieste compresse.

La modalità Pump richiede che i server abbiano l'opzione host lzo attiva.

RICERCA PERCORSI


Se il nome del compilatore è un percorso assoluto, viene passato testualmente al server e
compilatore viene eseguito da quella directory. Per esempio:

distcc /usr/local/bin/gcc-3.1415 -c Ciao C

Se il nome del compilatore non è assoluto o non è completamente qualificato, viene cercato il PATH di distccd.
Quando distcc viene eseguito da una directory mascherata, solo il nome di base del compilatore è
Usato. Il PATH del client viene utilizzato solo per eseguire il preprocessore e non ha effetto sul
percorso del server.

TIMEOUT


Sia il client che il server distcc impongono timeout sul trasferimento dei dati attraverso la rete.
Questo ha lo scopo di rilevare gli host che sono inattivi o irraggiungibili e di impedire le compilazioni
sospeso a tempo indeterminato se un server viene disconnesso durante l'uso. Se un timeout lato client
scade, il lavoro verrà rieseguito localmente.

I timeout non sono attualmente configurabili.

DIAGNOSTICA


I messaggi di errore o gli avvisi dai compilatori locali o remoti vengono passati alla diagnostica
uscita sul cliente.

distcc può fornire ampie informazioni di debug quando viene utilizzata l'opzione verbose. Questo
è controllata dal DISTCC_VERBOSE variabile di ambiente sul client, e il --verboso
opzione sul server. Per la risoluzione dei problemi, esamina sia l'errore del client che quello del server
messaggi.

EXIT CODICI


Il codice di uscita di distcc è normalmente quello del compilatore: zero per una compilazione riuscita
e diverso da zero altrimenti.

distcc distingue tra errori "genuini" come un errore di sintassi nella fonte e
errori "accidentali" come un problema di rete durante la connessione a un volontario. Nel caso
di errori accidentali, distcc riproverà la compilazione localmente a meno che DISTCC_FALLBACK
l'opzione è stata disabilitata.

Se il compilatore esce con un segnale, distcc restituisce un codice di uscita di 128 più il segnale
numero.

Gli errori interni distcc causano un codice di uscita compreso tra 100 e 127. In particolare

100 Errore distcc generale.

101 Brutti argomenti.

102 Associazione non riuscita.

103 Connessione non riuscita.

104 Il compilatore si è bloccato.

105 Memoria esaurita.

106 Bad host SPEC

Errore I / O 107

108 Troncato.

109 Errore di protocollo.

110 Il compilatore specificato non è stato trovato sull'host remoto. Controlla che $CC sia impostato
in modo appropriato e che sia installato in una directory nel percorso di ricerca per
distcc.

111 Chiamata ricorsiva a distcc.

112 Impossibile eliminare i privilegi.

113 Accesso alla rete negato.

114 In uso da un altro processo.

115 Nessun file del genere.

116 Nessun host definito e fallback disabilitati.

118 Tempo scaduto.

Utilizzare distcc online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

  • 1
    Firebird
    Firebird
    Firebird RDBMS offre funzionalità ANSI SQL
    e funziona su Linux, Windows e
    diverse piattaforme Unix. Caratteristiche
    concorrenza e prestazioni eccellenti
    & potenza...
    Scarica l'uccello di fuoco
  • 2
    KompoZer
    KompoZer
    KompoZer è un editor HTML wysiwyg che utilizza
    la base di codice di Mozilla Composer. Come
    Lo sviluppo di Nvu è stato interrotto
    nel 2005, KompoZer risolve molti bug e
    aggiunge una f...
    Scarica KompoZer
  • 3
    Downloader di manga gratuito
    Downloader di manga gratuito
    Il Free Manga Downloader (FMD) è un
    applicazione open source scritta
    Object-Pascal per la gestione e
    scaricare manga da vari siti web.
    Questo è uno specchio...
    Scarica il downloader manga gratuito
  • 4
    UNetbootin
    UNetbootin
    UNetbootin ti consente di creare bootable
    Unità USB live per Ubuntu, Fedora e
    altre distribuzioni Linux senza
    masterizzare un CD. Funziona su Windows, Linux,
    e ...
    Scarica UNetbootin
  • 5
    Dolibarr ERP-CRM
    Dolibarr ERP-CRM
    Dolibarr ERP - CRM è un facile da usare
    Pacchetto software open source ERP e CRM
    (eseguito con un server Web php o come
    software standalone) per le aziende,
    fondamenta...
    Scarica Dolibarr ERP - CRM
  • 6
    Client SQL SQuirreL
    Client SQL SQuirreL
    SQuirreL SQL Client è un SQL grafico
    client scritto in Java che consentirà
    per visualizzare la struttura di un JDBC
    database conforme, sfoglia i dati in
    tavoli...
    Scarica SQuirreL SQL Client
  • Di Più "

Comandi Linux

Ad