distccで分散コンパイルする際、すべてのホストが協力し合う必要はない。例えば、他ホストのコンパイルに協力するが、自ホスト用のコンパイルは単独で行うホストや、他ホストのコンパイルには一切協力せず協力してもらうホストがあってもよい。

まず、他ホスト用のコンパイルに協力するホスト。コンパイルの協力要求を受け入れるホストあるいはネットワークを/etc/conf.d/distccdに記述する。

DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.xxx.0/24"

この場合、192.168.xxx.0/24というネットワーク上のホストに協力する。

上記の設定をすべてのホストに行えば、分散コンパイルし合う環境になる。

依頼はするが他ホストのコンパイルには協力しないホストの場合は、/etc/conf.d/distccdに、

DISTCCD_OPTS="${DISTCCD_OPTS} --allow 127.0.0.1"

とする。これで、distccは127.0.0.1(ローカルホスト)からの依頼しか受け入れなくなる。

また、依頼を行うホストは、distcc-configで分散コンパイルに参加するホスト(distccの依頼先)を設定する。

# distcc-config --set-hosts "192.168.xxx.1 192.168.xxx.2 192.168.xxx.3"

「distcc-config --set-hosts」を実行すると、/etc/distcc/hostsというファイルが生成される。ファイルの中身は、distcc-config --set-hostsで指定したホストそのまま。

192.168.xxx.1 192.168.xxx.2 192.168.xxx.3

のようになっている。自分でディレクトリとファイルを用意するなら、distcc-configを使う必要はない。

# /etc/init.d/distccd restart

で/etc/conf.d/distccdの変更を反映したら、適当なプログラムをemergeしてみる。他ホストでpsコマンドやtopコマンドを使って、distccやccが起動しているのを確認できればOK。