# DistCC kompiliert nur auf "localhost"

## skibbi

Hi,

ich habe DistCC nach der Anleitung im Gentoo Manual eingerichtet und auch in der Logfile ist nicht von einem Fehler die Rede.

Aber dennoch wird nur auf localhost gebaut. Die zweite Adresse ruehrt er gar nicht an (erscheint gar nicht erst in der Logdatei).

Aber "compile on localhost completed ok" steht dort dafuer umso oefter.

Mache ich irgendetwas falsch?

----------

## boris64

auf beiden rechnern exakt die gleiche gcc-version?

----------

## skibbi

 *borisdigital wrote:*   

> auf beiden rechnern exakt die gleiche gcc-version?

 

Jupp beide male gcc-3.3.2-r5

----------

## skibbi

Hat keiner mehr ne Idee?

----------

## lutzlustig

hast du denn auf dem anderen Rechner mal mit "tail -f /var/log/messages" getestet, ob es wirklich nicht geht? auf localhost sihst du doch nichts davon außer das da ml ein paar Spitzen übers Netzwerk gehen.

Ansonsten, distcc gestartet, distcc mitgeteilt, welche Hosts es benutzen soll, hostnamen okay? firewall dazwischen?

Mehr fällt mir jetzt nicht ein  :Smile: 

Ciao

----------

## tassilo80

Was sagt denn ein

```
distcc-config --get-hosts
```

bei dir?

Gruß,

	Tassilo

----------

## NueX

Stehen die MAKEOPTS in der make.conf wirklich auf z.B. -j3 für 2 PCs?

----------

## noleti

hab bei mir auch nur über top mitbekommen das auf dem anderen Rechner kompiliert wurde... die Monitor-Programme haben nie was angezeigt

----------

## boris64

 *noleti wrote:*   

> hab bei mir auch nur über top mitbekommen das auf dem anderen Rechner kompiliert wurde... die Monitor-Programme haben nie was angezeigt

 

-> /etc/make.conf?

```
FEATURES="irgendwasanderes distcc"

DISTCC_DIR=DISTCC_TMPDIR

DISTCC_DIR=${PORTAGE_TMPDIR}/portage/.distcc
```

distcc im pfad vor gcc?

wie hast du den monitor gestartet? so (wäre es korrekt)?

```
DISTCC_DIR=/Verzeichnis/zum/distcc-Verzeichnis distccmon-gnome
```

ach, nochwas:

wenn du was via distcc baust, so zeigt nur der monitor auf genau dem

rechner einen kompiliervorgang an, auf dem der kompiliervorgang gestartet 

wurde.

und nun bin auch ich mit meinem latein am ende,

du musst eigentlich irgendwas übersehen haben.

die anleitung sollte nämlich lückenlos sein, bei mir funktioniert es

auch wie am schnürband  :Wink: 

----------

## skibbi

Hmm also ich hab den Monitor so gestartet:

```

#DISTCC_DIR=/var/tmp/portage/.distcc distccmon-gnome

```

Und nachdem ich chmod o+rw für das o.g. Verzeichnise gemacht hatte (hatte vorher permission denied Meldungen während der emergens) zeigt mir die monitor auch endlich was an.

Warscheinlich gings die ganze Zeit un ich habs net gemerkt. Top zeigt aufm Client auch Aktivität. 

Vielen Dank für die Hilfe.  :Smile: 

P.S. Gibt es unter Linux eigentlich Unterschiede zwischen den folgenden beiden Zeilen?

```

#DISTCC_DIR=/var/tmp/portage/.distcc

#DISTCC_DIR=/var/tmp/portage/.distcc/
```

----------

## hotkey

Moin. Ich habe auch so meine Probleme mit DistCC und bin mir nicht sicher woran es liegt. Eigentlich habe ich mich an den Guide gehalten.

Auf dem Server habe ich DistCC lediglich emerged und gestartet. Laut LogFile gab es dabei auch keine Probleme. 

Auf dem Client habe ich DistCC emerged und die Änderungen an der make.conf vorgenommen. Außerdem habe ich distcc-config --install und distcc-config --set-hosts "localhost server" ausgeführt. An dieser Stelle war ich zum ersten mal verwirrt, weil die Leute hier im forum sich nicht einig waren, ob auf dem Client DistCC auch gestartet werden muß.

Auf jeden Fall habe ich via distcc emerge paketname einige Pakete emerged und via distccmon-text auf dem Client erfahren das lediglich auf dem localhost kompiliert wird.  Via netstat und top wurde das ganze bestätig. Allerdings wird auf dem Client das Verzeichniss /var/tmp/portage/.distcc angelegt, was ja wiederum ein Zeichen dafür ist das DistCC laufen müßte.

Naja und um euch die Frage vorweg zu nehmen. Ja auf beiden Rechnern läuft die gleiche GCC Version  :Smile: 

Danke für eure Hilfe.

----------

## NueX

Also wenn du wirklich alles richtig eingestellt hast (MAKEOPTS, FEATURES), dann glaub ich dir das einfach mal  :Wink: 

Fest steht, dass natürlich da, wo du den eigentlichen emerge machst, auch distccd laufen muss. Und dann halt auf den anderen Rechnern, die "fröhlich mitrechnen" sollen. Die müssen natürlich erreichbar sein.

Ich habe aber auch die Erfahrung gemacht, dass viele Pakete gar nicht via distcc kompiliert werden. Da kann es schonmal sein, dass du welche erwischt hast, wo das gerade der fall ist. Und *plöff* erwischst du auf einmal ein Paket, bei dem es funktioniert und du bist glücklich  :Smile: 

----------

## hotkey

Hm. Dann satteln wir den Gaul doch einfach mal von hinten auf. Kennst Du auf Anhieb ein Paket das distcc nutzt?

----------

## NueX

Also, meine Einstellungen:

```
make.conf:

[...]

MAKEOPTS="-j3"

[...]

FEATURES="distcc"

[...]
```

```
# cat /etc/distcc/hosts

localhost 192.168.123.253
```

- distccd auf beiden Systemen gestartet

Dann: 

```
# emerge nano

[...]

<download, entpacken>

[...]

<configure: "checking ...">

[...]
```

Dabei siehts so aus:

```
# DISTCC_DIR=/var/tmp/portage/.distcc distccmon-text 1

[...]28794  Compile                                                   localhost[0]

 [...]

 28820  Compile     conftest.c                                    localhost[0]

 [...] 

 29314  Compile     conftest.c                                    localhost[0]

 [...]

 29446  Compile                                                   localhost[0]

[...]

```

Dann gehts irgendwann richtig los:

```
# emerge nano

[...siehe oben...]

[...]

if gcc -DSYSCONFDIR=\"/etc\" -I. -I. -I.. -Iintl -DLOCALEDIR=\"/usr/share/locale\" -I/usr/include    -march=athlon-tbird -mcpu=athlon-tbird -O3 -pipe -MT color.o -MD -MP -MF ".deps/color.Tpo" \

  -c -o color.o `test -f 'color.c' || echo './'`color.c; \

then mv -f ".deps/color.Tpo" ".deps/color.Po"; \

else rm -f ".deps/color.Tpo"; exit 1; \

fi

if gcc -DSYSCONFDIR=\"/etc\" -I. -I. -I.. -Iintl -DLOCALEDIR=\"/usr/share/locale\" -I/usr/include    -march=athlon-tbird -mcpu=athlon-tbird -O3 -pipe -MT cut.o -MD -MP -MF ".deps/cut.Tpo" \

  -c -o cut.o `test -f 'cut.c' || echo './'`cut.c; \

then mv -f ".deps/cut.Tpo" ".deps/cut.Po"; \

else rm -f ".deps/cut.Tpo"; exit 1; \

fi

[...]
```

Dabei siehts so aus:

```
# DISTCC_DIR=/var/tmp/portage/.distcc distccmon-text 1

[...]

15236  Preprocess  cut.c                                   192.168.123.253[0]

 15230  Compile     color.c                                       localhost[0]

 15239  Compile     files.c                                       localhost[1]

 

 15236  Compile     cut.c                                   192.168.123.253[0]

 15319  Compile     global.c                                      localhost[0]

 15239  Compile     files.c                                       localhost[1]

 

 15319  Compile     global.c                                      localhost[0]

 15239  Compile     files.c                                       localhost[1]

 

 15319  Compile     global.c                                      localhost[0]

 15239  Compile     files.c                                       localhost[1]

 

 15483  Compile     nano.c                                  192.168.123.253[0]

 15319  Compile     global.c                                      localhost[0]

 15239  Compile     files.c                                       localhost[1]

```

Also kannstes ja auch mal mit nano probieren, ist ja ein kleines Paket, dass schnell geht.

Gruß, NueX

----------

## hotkey

Vielen Dank. Ich glaube ich habe mich Heute zum Honk der Woche gemacht  :Smile:  Ich habe den DistCC Monitor ohne Angabe des Verzeichnisses gestartet und mir dabei nichts gedacht.

----------

## NueX

Hauptsache, es geht jetzt   :Very Happy: 

----------

