パワー不足の玄箱でGentooを運用して行くには、少しでもコンパイルの速度を上げないとGentooが生きて来ないだろう、ということで・・・
ボロPC(とは言え、Pentium III 800MHz)に、コンパイルをお手伝いさせようと、前回は、PowerPC(玄箱)のコンパイル環境をPentiumeIII上に構築したわけです。
今回は、分散コンパイルさせるために、distccの導入です。
既に、玄箱には、distccは導入してあるので、ボロPCにも入れます。ついでに、ccacheも入れてしまいます。
ボロPCで:色々と試行錯誤がありましたが、最終的に次のようになりました。
玄箱側の設定:/etc/make.confの内容:(太字が関連箇所)
CFLAGS="-O2 -mcpu=603e -fno-strict-aliasing -pipe -fsigned-char"
CHOST="powerpc-unknown-linux-gnu"
CXXFLAGS="${CFLAGS}"
PORTDIR=/var/portage
DISTDIR=/var/portage/distfiles
PKGDIR=/var/portage/packages
RPMDIR=/var/portage/rpm
PORTDIR_OVERLAY="/var/overlays/kurobox"
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
GENTOO_MIRRORS="http://mirror.gentoo.gr.jp/"
SYNC="rsync://192.168.11.101/gentoo-portage"
PORTAGE_TMPDIR=/var/tmp
MAKEOPTS="-j6"
FEATURES="ccache distcc"
DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
ホストの指定:# distcc-config --set-hosts 192.168.11.101
/usr/lib/distcc/powerpc-unknown-linux-gnu-wrapperを次の内容で新規に作成する。
#!/bin/bash
exec /usr/lib/distcc/bin/powerpc-unknown-linux-gnu-g${0:$[-2]} "$@"
これは、powerpc-unknown-linux-gnu-gccのようにフルネームではなく、gccと短い名前で呼ばれたときに、フルネームで呼ばれたかのように見せかけるラッパーです。
コンパイラが起動されたときにdistccを実行するように、シンボリックリンクをはります。
# cd /usr/lib/distcc/bin
# chmod a+x powerpc-unknown-linux-gnu-wrapper
# ln -s powerpc-unknown-linux-gnu-wrapper c++
# ln -s powerpc-unknown-linux-gnu-wrapper cc
# ln -s powerpc-unknown-linux-gnu-wrapper g++
# ln -s powerpc-unknown-linux-gnu-wrapper gcc
# ln -s /usr/bin/distcc powerpc-unknown-linux-gnu-c++
# ln -s /usr/bin/distcc powerpc-unknown-linux-gnu-g++
# ln -s /usr/bin/distcc powerpc-unknown-linux-gnu-gcc
デフォルトランレベルにdistccとccacheを登録しておきます。
# rc-update add distcc default
# rc-update add ccache default
ボロPC側の設定:/etc/make.confの内容:
CFLAGS="-Os -march=pentium4 -pipe"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
GENTOO_MIRRORS="http://mirror.gentoo.gr.jp"
SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"
PORTDIR_OVERLAY="/usr/local/portage"
PORTAGE_TMPDIR=/var/tmp MAKEOPTS="-j2"
FEATURES="ccache" CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
こちらは、お手伝いをするだけなので、設定はこれだけです。
玄箱と同じくデフォルトランレベルに登録しておきます。
# rc-update add distcc default
# rc-update add ccache default
以上で、設定は終わりです。
それぞれのマシンでdistccとccacheを起動した後、玄箱側で何かをemergeしてボロPC側で、powerpc-〜、cc1・・・などのプロセスが実行されれば、導入は成功です。