# Problema distcc

## Sym

Salve ragazzi, ho due macchine collegate in rete tramite HUB e volevo provare distcc (per sfizio). Ho lanciato sulla macchina più vecchia il demone distccd e su questa ho installato distcc con portage, settato l'host con distcc --set-hosts e aggiunto la stringa FEATURES="distcc" in make.conf. Eppure quando compilo qualcosa l'HUB è fermo, non c'è passaggio di dati, quindi presumo che distcc non funzioni...potete aiutarmi? Grazie   :Smile: 

----------

## IgaRyu

hai compilato distcc anche sulla macchian che compila ? senno come fa ad invocarlo  :Smile:  ?

----------

## Sym

Emh...l'ho installato con portage...  :Smile: 

----------

## IgaRyu

Ed hai verificato al rpesenza della feauture distcc nella variabile di ambiente FEATURES

ed hai assengato la variabile DISTCC_HOSTS="indirizzo del pc dove gira il demone distcc' ?

entrambe queste variabili devono essere configurate nel file /etc/make.conf

----------

## Sym

In effetti si Iga...infatti non riesco a capire perchè non va   :Crying or Very sad: 

----------

## Ibanez-RgX

Hai settato correttamente il link al tuo compilatore?

Con che programmi non distribuisce? Codice C o C++?

----------

## cerri

Prima di fare debugging sulla seconda macchina, guarda tramite tcpdump se almeno viene provata la connessione.

----------

## Sym

Ho fatto un passo avanti, ora distcc è a posto (avevo solo invertito gli host nella variabile)...il problema è che non compila...ho provato per esempio tcpdump, inizia a compilare e poi esce con questo:

In file included from addrtoname.c:57:

/usr/include/stdlib.h:581: warning: `__malloc__' attribute directive ignored

In file included from interface.h:39,

                 from addrtoname.c:60:

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/include/stdarg.h:110: parse error before `va_list'

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/include/stdarg.h:110: warning: data definition has no type or storage class

make: *** [addrtoname.o] Error 1

!!! ERROR: net-analyzer/tcpdump-3.7.2 failed.

!!! Function src_compile, Line 28, Exitcode 2

!!! (no error message)

 :Sad: 

----------

## cerri

Hai le stesse versioni di glibc in entrambe le macchine?

----------

## Sym

No, in effetti stavo pensando anche io a questo...sull'altra macchina ho una Slack80, quindi tutto molto più vecchio...  :Sad: 

----------

## Ibanez-RgX

 *cerri wrote:*   

> Hai le stesse versioni di glibc in entrambe le macchine?

 

Se non erro sulla doc ufficiale dicevano che non c'era bisogno di avere lo stesso compilatore e le stesse librerie su entrambe le macchine.....

distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. Machines can be running different operating systems, as long as they have compatible binary formats or cross-compilers.

----------

## cerri

Non me ne intendo di distcc: forse la stessa versione non e' necessaria, ma major release si.

Prova ad aggiornare slack  :Wink: 

----------

## Sym

 *cerri wrote:*   

> Non me ne intendo di distcc: forse la stessa versione non e' necessaria, ma major release si.
> 
> Prova ad aggiornare slack 

 

Era quello   :Wink: 

----------

## Naspe

Scusate non ho capito alcune cosette su distcc:

1 - sulla macchina che compila ho fatto partire knoppix poi ho lanciato distccd. Fine? Non devo fare altro? Nella guida nn c'è scritto nulla di come settare la macchina che compila... (oppure nn lo ho visto)

2 -  *IgaRyu wrote:*   

> 
> 
> hai assengato la variabile DISTCC_HOSTS="indirizzo del pc dove gira il demone distcc' ? 
> 
> entrambe queste variabili devono essere configurate nel file /etc/make.conf
> ...

 

ma sulla guida ufficiale nn dice di farlo... dice di lanciare il comando distcc-config --set-hosts "localhost host1 host2 host3 ..."

3 - Considerando che ho usato distcc per fare il bootstrap, come faccio a vedere se funzica? Effettivamente a farlo ci ha messo circa 4 orette (meno del solito mi pare) e a fare emerge system ci ha messo nemmeno un'ora... Xò io sono andato a vedere sulla macchina che aiutava il mio portatile a compilare e dal monitor di sistema nn è che risultasse quel gran carico della CPU...

4 - Ma sto distcc, una volta che è configurato, parte da solo ogni volta che emergo qualcosa? E se il picci host è spento succede qualche casino?

5 - Non ho capito nulla della sezione "Setting up Distcc to Work With Automake" nella guida...

Grazie in anticipo x l'aiuto ciao ciao.

----------

## Naspe

Dai su sciogliete i miei dubbi!!!   :Laughing: 

So che è un thread vecchio, ma io ho seguito le direttive di Shev che mi ha detto di "riesumare" un thread anzichè scriverne uno nuovo  :Very Happy: 

----------

## Ginko

 *Naspe wrote:*   

> Scusate non ho capito alcune cosette su distcc:
> 
> 1 - sulla macchina che compila ho fatto partire knoppix poi ho lanciato distccd. Fine? Non devo fare altro? Nella guida nn c'è scritto nulla di come settare la macchina che compila... (oppure nn lo ho visto)

 

Tutto li, non serve altro a meno che tu non abbia un FW, nel qual caso devi apripre la porta usata da distcc (normalmente tcp 3632).

 *Naspe wrote:*   

> 2 - ma sulla guida ufficiale nn dice di farlo... dice di lanciare il comando distcc-config --set-hosts "localhost host1 host2 host3 ..."

 

Per avere il settaggio permanente, ti consiglio di crearti il file /etc/env.d/02distcc e settare la variabile DISTCC_HOST in modo appropriato e poi dare un 

```
env-update
```

 *Naspe wrote:*   

> 3 - Considerando che ho usato distcc per fare il bootstrap, come faccio a vedere se funzica? Effettivamente a farlo ci ha messo circa 4 orette (meno del solito mi pare) e a fare emerge system ci ha messo nemmeno un'ora... Xò io sono andato a vedere sulla macchina che aiutava il mio portatile a compilare e dal monitor di sistema nn è che risultasse quel gran carico della CPU...

 

Attiva DISTCC_VERBOSE nel file che ti ho detto sopra (non dimenticare di dare env-update dopo ogni combiamento). Ad ogni compilazione distcc scrivera' chiaramente quello che sta facendo. 

 *Naspe wrote:*   

> 4 - Ma sto distcc, una volta che è configurato, parte da solo ogni volta che emergo qualcosa? E se il picci host è spento succede qualche casino?

 

Parte da solo se lo attivi in /etc/make.conf :

```
FEATURES="distcc"
```

In DISTCC_HOST mettici pure localhost cosi' se l'host remoto e' spento, la compilazione viene fatta sulla macchina locale.

Il mio file /etc/env.d/02distcc e' il segunete :

DISTCC_VERBOSE="1"

DISTCC_HOSTS="remote_host localhost"

Se vuoi usare distcc per altre compilazioni che non siano emerge, puoi impostare CC=distcc nel comando make. Ad esempio per compilare il kernel usando distcc :

```
make dep bzImage modules modules_install CC=distcc
```

Saluti

--GianlucaLast edited by Ginko on Fri Dec 19, 2003 11:57 am; edited 1 time in total

----------

## Naspe

Ma Grazzie!!!  :Very Happy: 

Hai risposto in modo rapido ed efficace ad ogni mia domanda  :Very Happy:  Ty a lot!!!

----------

## Naspe

Fico sembra funzionare!!! Sul picci di la da mia sorella il monitor di sistema mostra attività  :Very Happy: 

Ho fatto come mi hai detto tu x il file /etc/env.d/02distcc ma ho anche aggiunto di fare un file di log, nn ci capisco na fava ma fa fico il file di log  :Very Happy: 

Cmq il mio processore sembra lavorare meno, ora mi è sorto un'altro dubbiettino (lo so sono una palla) ma con distcc, praticamente io faccio lavorare un'altro processore al posto del mio, oppure lavorano assieme?

C'entra qualcosa con questo l'impostazione jn?

----------

## Ginko

 *Naspe wrote:*   

> lo so sono una palla

 

No, sei solo un po ' pigro  :Wink: 

 *Naspe wrote:*   

> ma con distcc, praticamente io faccio lavorare un'altro processore al posto del mio, oppure lavorano assieme?
> 
> C'entra qualcosa con questo l'impostazione jn?

 

Ogni host inserito nella lista DISTCC_HOSTS riceve delle compilazioni da eseguire, ogni singola compilazione e' eseguita - ovviamente - solo su un host.

Da qui si evince che l'opzione -j<n> indica il numero di processori (+1) presenti su ogni signolo host e non la somma di tutt gli hosts.

--Gianluca

----------

## Naspe

Piu che pigro direi tanardo... Io avevo capito che fossero la somma dei processori +1 in tutta la rete...   :Embarassed: 

Cmq nn è tutta colpa mia eh... guarda:

 *Il tutorial sul sito gentoo wrote:*   

> 
> 
> The final step to integrating distcc into Portage is to re-open your /etc/make.conf and edit MAKEOPTS to include -jN (where N is an integer). Typically you will want to set this to the total number of processors in your network plus one.
> 
> 

 

E gia che ci sono ti chiedo n'altra cosa  :Very Happy: 

Ho letto qua e la che alcuni ebuilds/programmi che nn vanno molto d'accordo con il distcc... se volessi evitare che il portage lo usi, che fo? Commento la riga FEATURES="distcc" nel make.conf?

----------

## Ginko

 *Naspe wrote:*   

> Ho letto qua e la che alcuni ebuilds/programmi che nn vanno molto d'accordo con il distcc... se volessi evitare che il portage lo usi, che fo? Commento la riga FEATURES="distcc" nel make.conf?

 

No, puoi usare il metodo piu' veloce :

```
FEATURES="" emerge <ebuild-che-non-vuole-distcc>
```

--Gianluca

----------

## Naspe

Mitico! Ma le sai tutte!!!   :Very Happy: 

Lo hai scritto tu il distcc?   :Very Happy: 

Grazie mille ciao ciao.

----------

