Difference between revisions of "Distcc Setup"
m (→Team B) |
(→Task Description) |
||
Line 7: | Line 7: | ||
The goal is to eventually set up distcc on all Linux boxes in CDOT, so compiling on any of the computers is distributed on all others. | The goal is to eventually set up distcc on all Linux boxes in CDOT, so compiling on any of the computers is distributed on all others. | ||
− | |||
− | |||
= Resources = | = Resources = |
Revision as of 12:53, 27 January 2009
Contents
Task Name
Setting up distcc, distributed compilation for c/c++ compilers on Linux machines in CDOT.
Task Description
The goal is to eventually set up distcc on all Linux boxes in CDOT, so compiling on any of the computers is distributed on all others.
Resources
DistCC Cross-compiling Guide
Frequently asked questions
Linux Knowledge Base: DistCC
DistCC User Manual
Deaseon Moon's Blog
(add more)
Teams
(edit this page as you see fit)
Team A
- Setting up Ireland 133.26 , Australia 133.24 , Germany 133.102, (one more to come)
- Andrew Braini (aBraini)
- Daeseon Moon (daeseon)
- Frankie Law (irc Mini_Cheong)
- Bartosz Barcicki (irc nick?)
Status
- Ireland is setup (server and client)
- Australia is setup (server and client)
- Germany is setup (server and client)
- Tried compilation with both Ireland and Australia and Germany. Distcc on any should compile on all three.
- Check Deaseon's blog
Team B
- Setting up China 142.204.133.36 , India 142.204.133.28
(log your work here)
Team C
- Setting up Hongkong 133.30, Liberia 133.123
- Ladan Zahiroleslam (irc: l_zahir, LZahir)
- Tiago Moreira (irc nick?)
- Your name goes here (irc nick?)
(log your work here)
distcc Setup Steps
Installation
To install distcc using yum log on as root "su -" and type “yum search distcc”. Two packages available, install both to run as both client and server. At prompt type “yum install distcc-server” to install server package and “yum install distcc” for client package.
Configuration
On the server machine the distcc daemon(distccd) needs to be started. At prompt as root type "distccd –-daemon –-user YOURUSERNAME –-allow 142.204.133.0/24"
Argument --user is if distccd gets executed as root, change to user USER, --allow IPADDR[/MASK] instructs distccd to accept connections from the IP address. A CIDR mask length can be supplied optionally after a trailing slash, e.g. 192.168.0.0/24, in which case addresses that match in the most significant MASK bits will be allowed.
Now we need to setup the IPTABLES to allow connections to the distcc daemon. Before doing anything make a backup file of the original iptables file located in /etc/sysconfig/iptables. To do this we simply type “cp /etc/sysconfig/iptables [backupfile name]“. To allow connections type “iptables -I INPUT 7 -i eth0 -p tcp -s 142.204.133.0/24 –dport 3632 -j ACCEPT”. To apply type “service iptables save”.
Argument -I is insert and -i is and network interface device and -p is protocol -s is source ipaddress and subnet, –dport is destination port and -j is rule.
On the client machine the server names need to be added to the host environment variable DISTCC_HOSTS. Ex: “export DISTCC_HOSTS=’ireland australia’”
Testing
Open two SSH connections into the client machine.
In Terminal 1 enter:
$ distccmon-text 1
In Terminal 2 enter:
$ wget http://apache.mirror.rafal.ca/httpd/httpd-2.2.11.tar.gz $ tar xzvf httpd-2.2.11.tar.gz $ cd httpd-2.2.11 $ CC=distcc ./configure $ make -j9 CC=distcc >log 2> error
(complete this collaboratively) TO-DO
- hosts saved in hosts file
- better formatting
- creating new distccd user with no home-dir for daemon
- things forgotten or left out.