Mittwoch, 7. Januar 2009

Kompilieren mit Distcc

Wer ein VEs auf Basis OpenVZ oder Virtuozzo hat kennt die Limiten. So lassen sich z.B. nicht alle Programme kompilieren und enden häufig mit der Meldung

virtual memory exhausted: Cannot allocate memory

Man könnte mehr Ressourcen zur Verfügung stellen (Was in den meisten fällen mehrkosten bedeutet) oder man kompiliert die Programme auf einem Leistungsstarken Rechner. Für die zweite Variante kann man distcc benutzen.

Szenario :

(VPS / thetube.ch)===(Internet)===(PC / Dynamische IP vom Provider)

Auf beiden Rechner (In unserem Falle beides identisches OS!) muss distcc installiert sein.

Konfiguration PC (File /etc/distcc/hosts)  : 127.0.0.1
Konfiguration VPS (File /etc/distcc/hosts) : 127.0.0.1

Auf dem PC starten wir nun der discc Daemon (/etc/init.d/distcc start)

Nun machen wir einen Tunnel mit der Option Port Forwarding auf unser VPS Server vom PC aus (ssh -R 3632:localhost:3632 unseruser@thetube.ch)

Jetzt geht es ans Kompilieren. Zum testen können wir einmal ein "helloworld" Programm kompilieren mit : distcc cc -c helloworld.c

Wenn alles klappt sehen wir im distccd.log auf dem PC folgender Eintrag :
Für Gosse Projekte geht man nach der Dokumentation vor.