# distcc geht nicht

## hurra

Hallo, 

da ich hier auf einem altem Rechner (166Mhz) gentoo installieren wollte, dacht ich mir, dass distcc ned falsch wäre. Also probiere ich es erstmal auf meinen beiden schnelleren Rechner aus, doch leider bisher ohne Erfolg.

Ich habe laut Anleitung folgendes gemacht (auf beiden Rechnern):

emerge distcc

dann make.conf:

FEATURES="distcc"

MAKEOPTS="-j3"

distcc-config --set-hosts "localhost 172.27.9.2" (172.27.9.2 is der andere Rechner)

/etc/init.d/distccd start

Nun sollte doch bei emergen von irgendwelchen Programmen distcc funktionieren, tut es aber nicht.

Was mache ich falsch, wer kann mir helfen

Danke schonmal

Cu hurra

----------

## amne

/etc/init.d/distccd start hast du hoffentlich auch auf 172.27.9.2 gemacht?

Ausserdem verwendet nicht jeder Ebuild (u.a. xfree, mozilla) distcc.

----------

## hurra

Ich habe auf beiden rechner distccd gestartet, und ich habe auch schon viele verschiedene Programme probiert, immer ohne Erfolg

----------

## Rad

Haste auf beiden Rechnern dieselbe Version von GCC? Sind evtl. Ports nicht erreichbar von dem einen Rechner aus, weil da etwas was NAT macht oder ein Firewall dazwischen ist?

----------

## meyerm

Schau bitte mal in die log/messages von Deinem "kleinen" Rechner. Dort wird z.B. notiert wenn er den anderen Server gar nicht erreichen konnte etc.

----------

## hurra

Gcc versuion dürfte nicht die gleiche sein, ports sind alle erreichbar, keine fw

Log beim starten von distccd:

```
Apr 11 13:48:56 alder distccd[4560]: (dcc_should_be_inetd) stdin is a tty; assuming --daemon mode

Apr 11 13:48:56 alder distccd[4560]: (dcc_listen_by_addr) listening on 0.0.0.0:3632

Apr 11 13:48:56 alder distccd[4560]: (dcc_standalone_server) 1 CPU online on this server

Apr 11 13:48:56 alder distccd[4560]: (dcc_standalone_server) allowing up to 3 active jobs

Apr 11 13:48:56 alder distccd[4561]: (dcc_log_daemon_started) preforking daemon started (2.11.1 i686-pc-linux-gnu, built Mar 13 2004 19:22:00)

```

Beim Kompiliernen von Programmen, keine weitere Meldung im Syslogger

----------

## øxygen

Bringt distcc denn Fehlermeldungen beim emergen?

----------

## Rad

GCC muss AFAIK übereinstimmen sonst kompiliert der gar nicht auf 'ner anderen Maschine. Gleich' das erst 'mal aus, bevor du weitermachst!

----------

## hurra

Nein, hab jetzt mal distcc neu emerged (neuere Version), aber kein Fehler beim emergen

Hm, ok,

Wie mah ich des? (sry für blöde frage)

----------

## boris64

steht folgendes in der make.conf`?

```

FEATURES="distcc blahblah"

DISTCC_DIR=DISTCC_TMPDIR

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

...und in der configdatei

```
/etc/distcc/hosts
```

sollten afaik _alle_ hosts stehen, die mitrechnen wollen,

also auch dein eigener rechner.

und das oberwichtigste:

gcc muss auf beiden rechner 100% der gleiche sein,

sonst rührt sich da gar nichts.

wenns funktioniert, siehst du das mit 

```
distccmon-gnome
```

oder

```
distccmon-text
```

----------

## didi156

Erstmal ne blöde Frage: Bist du dir sicher, dass es wirklich nicht funktioniert? Ich war nämlich mal lange im Glauben, dass das bei mir nicht funktioniert, weil distccmon-text auf dem Client nix ausgegeben hat. Wie ich nun zu wissen glaube werden da eingehende, nicht verschickte Jobs angezeigt, es müsste also auf dem Server laufen, auf den hab ich aber keinen Zugriff..

Was die Sache mit den gcc-Versionen betrifft, kann ich nicht ganz zustimmen; es wird zwar dringend empfohlen, die gleiche Version zu verwenden, aber zum einen geht es da hauptsächlich um die 2. Stelle der Versionsnummer, sprich 3.3.2 und 3.3.3 sollten kein Problem sein, und zum anderen funktioniert es zumindest grundsätzlich auch sonst, habe das z.B. mit 3.3.2 auf dem Client (Gentoo) und 3.2.x als Host (Debian) probiert.

Probier mal, als distcc-host nur den anderen Rechner anzugeben, also ohne localhost, und schau was passiert, bei mir hats funktioniert. Und wenn der wesentlich schneller ist, wärs sowieso keine schlechte Idee, localhost zumindest dahinter zu setzen.

Frohe Eier noch  :Wink: 

----------

## boris64

 *Quote:*   

> Wie ich nun zu wissen glaube werden da eingehende, nicht verschickte Jobs angezeigt, es müsste also auf dem Server laufen, auf den hab ich aber keinen Zugriff.. 

 

wenn _ich_ auf _meinem_ rechner etwas per portage installiere/kompiliere,

so sehe _ich_ (und nur _ich_) in _meinem_ distccmon, wer was wann mitkompiliert.

die anderen, die "mitarbeiten" dürfen, sehen/merken rein gar nichts, ausser

einem _kleinen_ geschwindigkeitsverlust.

----------

## SvenFischer

Auch ich habe eher selten eine Anzeige durch die Text oder Grafikausgabe von distcc. Besser man achtet auf den Netzerkverkehr (LED am Switch/Netzwerkkarte/über den Systemmonitor in KDE).

Noch ein Tipp:

/etc/make.conf->

FEATURES"distcc ccache"

Das mit dem ccache macht einiges aus!

Auch sollte in der distcc-hosts Datei der deutlich schnellere Computer zuerst genannt werden, der übernimmt dann die Hauptlast beim Kompilieren. Wenn der Unterschied der Prozessoren in der Geschwindigkeit nur marninal ist, dann besser den localhost zuerst, denn die lange Laufzeit des Netzwerkes wirkt dann kontraproduktiv.

----------

## hurra

Ok, danke soweit

Wenn ihr mir noch sagt, wie ich mein gcc updaten kann, wäre ich voll zufrieden

E: Einfach portage tree updaten und dann gcc neu emergen?

----------

## boris64

```
emerge sync && emerge -u gcc
```

----------

## molecular

 *Quote:*   

> zapp bin \> which cc
> 
> /usr/lib/distcc/bin/cc
> 
> 

 

wenn das nich so aussieht musste dein PATH anpassen so dass /usr/lib/distcc/bin VOR /usr/bin (oder wo gcc sonst liegt) steht.

noch ein Tip: probier mal ne andere host-syntax, das mit "/", z.B:

 *Quote:*   

> distcc-config --set-hosts "localhost/2 power.tower/4"
> 
> 

 

erklaerung hab ich keine, aber hat bei mir mal geholfen.

und vergiss nich die quotes um die hosts-liste bei --set-hosts, sonst haste (ohne warnung) nur den ersten in /etc/distcc/hosts

----------

## molecular

 *Rad wrote:*   

> GCC muss AFAIK übereinstimmen sonst kompiliert der gar nicht auf 'ner anderen Maschine. Gleich' das erst 'mal aus, bevor du weitermachst!

 

hab ich auch mal gedacht, aber zumindest in manchen faellen tut ers scheints trotzdem. hatte mal gcc 3.3.2 und 3.2.3 gemixed und hab nen 2.6er kernel ge-"make -j12"-ed (mit 5 kisten). das ging zwar richtig schoen schnell, aber leider auch schief.

----------

