Last Update: "2007/10/05 12:25:03 makoto"

distcc

url

徳田さんの日記に使い方が書いてあります (以前の URL は無効)
http://www.tokuda.net/diary/200407c.html
yaoshi さんの日記にも役に立つ情報があります:
http://www2.starcat.ne.jp/~yaoshi/diary/?200501b&to=200501134S1#200501134S1 → http://www.yagoto-urayama.jp/~oshimaya/d/?200501b#200501134
分散コンパイル環境 〜distcc〜 (よっちん家)
http://www.alles.or.jp/~luz/hpcmips/distcc.html
ccache と distcc でビルドを高速に
http://www.otsune.com/bsd/ports/ccache_distcc.html

distcc って何

Distributed CC = 分散 C Compiler です。

用意するもの

参照機械 pkgsrc/devel/distcc cross compiler設定
1目的の機械 (遅い) distcc /etc/mk.conf
2速い機械 distccd cross compiler rc.d/distccd, rc.conf
両方の機械に pkgsrc/devel/distcc を入れておきます。 またサーバと、目的の機械の machine_arch が違うものなら、サーバ側 にはクロスコンパイラが必要です。 クロスコンパイラを用意するには、(src が用意してあれば) 例えば
./build.sh -m target_arch tools 
とすれば作るのも、(src を用意したり、版数を管理するのが面倒という点を除けば) ある意味で手軽です。 その上で 2 のサーバ側に、次の設定をしておきます。

distccmon-text

distccmon-text 10

pkg_add

pkg_add distcc とすると、
The following files should be created for distcc-2.18.2nb2:

        /etc/rc.d/distccd (m=0755)
と表示されますが、これは
sudo cp -p /usr/pkg/share/examples/rc.d/distccd /etc/rc.d
ということです。

この方法でなくて、手で daemon を起動するには、次のようにします。

distccd --daemon --allow 192.168.1.0/24
あるいはこの前に env を付けて、クロス コンパイラを環境変数 を使って設定しておきます。

これを呼ぶ方では、~/.distcc/hosts に設定をします。 TCP 接続を使う場合には、次のように機械の名前を並べておきます。

  localhost red green blue
また SSH 接続を使うなら、次のように書いおきます。
  localhost @red @green @blue
機械は速い方から並べておきます。特に自機が(すごく)遅い場合を除いて、 最初に localhost を書いておきます。

netbsd の pkgsrc を distcc する場合には /etc/mk.conf に次のように書いておくといいそうです。

PKGSRC_COMPILER=distcc gcc
DISTCC_HOSTS=192.168.100.39 localhost