7. distcc ccache について

7.1. 設定

7.1.1. distcc の設定

OmoiKondara に -D オプションを付ける事で、distcc 用の環境変数 を設定した状態で rpmbuild を実行するようにしています。

ホストの記載の方法は.OmoiKondara

  DISTCC_HOST host1
  DISTCC_HOST host2:11111

のように<ホスト名>[:<ポート番号>]でホストの数分だけ行を追加していって下さい。 ホストの後にポート番号を指示して下さい。無指定の場合には 3632 のポートを使用します。

.OmoiKondaraの NUMJOBS に使用する CPU の 合計の数を目安に設定して下さい 。

NUMJOBS 4

マシンが重くなってもいいから少しでも速くビルドしたい、という人は、 上記の目安の 2 倍くらいの数字を指定してみて下さい。

ポートが使用できるように環境に合せて、別途設定を行なって下さい。servicesの記述、xinetd 等の設定等。

7.1.2. ssh 経由の設定

なお、distcc は 2.1 以降、distccd を立ち上げていなくても ssh 経由で自動 的に立ち上げて使えるようになりました。

export DISTCC_HOSTS="localhost @remote1 @remote2"

もしくは

export DISTCC_HOSTS="localhost user1@remote1 user2@remote2"

のように設定して下さい。

従来のようにすでに起動している distccd に接続するには

export DISTCC_HOSTS="localhost remote1 remote2"

と設定して下さい。

7.1.3. spec の設定

spec の方では、%build の

make ......

%make ......

とすれば O.K. です。

ただし、noarch なパッケージでは make -j は使わなくていいと思います。

7.1.4. 注意

DISTCC_HOST で指定した端末で top を実行すると cc1 を確認する事が出来ます。 まだクロスコンパイル等には対応していません。distcc にも限界があるため ホストにインストールされている gcc のバージョンは同じにする必要があります。 ただし、ライブラリやヘッダファイル等は、OmoiKondara を実行するホストにインストールされて いるだけで大丈夫です。

7.1.5. ccache について

これまで /usr/bin/ccache/gcc のような場所にあった symlink 群を、 /usr/libexec/ccache に移動させて、ccache 本体は /usr/bin/ccache になりました。

[重要] 一度、2.2-1m 以前の ccache が既にインストールされている場合には rpm -e してから入れて下さい。 rpm は、もともとディレクトリだったところに同名のファイルで上書きすることが出来ないからです。

ccache と同様に、/usr/libexec/distcc に gcc などの symlink 群を置いて、 distcc 本体は /usr/bin/distcc になりました。

7.2. distcc ccache 併用時の設定

distcc は ccache と併用する事も出来ます。

1. ccache のみを使いたい場合

export PATH="/usr/libexec/ccache:$PATH"

のように設定してください。

2. distcc のみを使いたい場合

export PATH="/usr/libexec/distcc:$PATH"

のように設定してください。

3. ccache と distcc の両方を使いたい場合

export PATH="/usr/libexec/ccache:$PATH"
export CCACHE_PREFIX="distcc"

のように設定してください。