きっかけ
24コア48スレッドなXeon機の使い道を募集したところ、distccのサーバーとしてみてはいかが?と言われ、存在を知り、PowerBook G4にGentoo Linuxを入れるということで、使ってみることにしました。
インストール
0. 事前に使いたいコンパイラをインストール
自分は、gcc-14-powerpc-linux-gnuとg++-14-powerpc-linux-gnuをインストールしました。
1. distccのインストールsudo apt update
sudo apt upgrade
sudo apt install distcc
2. コンフィグファイルを編集
sudo vim /etc/default/distcc
STARTDISTCC=”true”
ALLOWEDNETS=”192.168.x.0/24″ #許可するネットワーク(自分のIP環境に合わせて)
LISTENER=”192.168.x.x” #自身のIP(自分のIP環境に合わせて)
NICE=”10″
3. サービスの開始と起動設定sudo systemctl enable distcc.service
sudo systemctl restart distcc.service
デーモンではなく、一時的に実行したい場合
192.168.x.0/24からの許可、自身のIPが192.168.x.xの場合distccd --no-detach --daemon --allow 127.0.0.1 --allow 192.168.x.0/24 --listen 192.168.x.x --log-stderr
コンパイラのファイル名が異なる場合
ディストリビューションが異なると、コンパイラのファイル名が異なったりすることがあります。例えば、powerpc向けのgccは、Gentoo Linux上では、powerpc-unknown-linux-gnu-gccですが、Ubuntu上では、powerpc-linux-gnu-gcc-14とかです。
解決策としては、同じ名前のシンボリックリンクを作成して、distccの設定を行うだけです。
1. コンパイラの場所の特定which powerpc-linux-gnu-gcc-14
/usr/bin/powerpc-linux-gnu-gcc-14でした。gccのバージョンが合っていることを確認してから行うのを推奨します。
2. 依頼先のコンパイラの名前のシンボリックを作成sudo ln -s /usr/bin/powerpc-linux-gnu-gcc-14 /usr/bin/powerpc-unknown-linux-gnu-gcc
3. distccに設定cd /usr/lib/distcc
で移動し、distccへのシンボリックリンクを作成します。sudo ln -s ../../bin/distcc powerpc-unknown-linux-gnu-gcc
4. 設定の適用sudo update-distcc-symlinks
これで完了です。
参考にしたページ
retroflux「Distcc adventures: Distributed cross-compiling with macOS and Windows/Linux」
Gentoo Linuux Wiki「Distcc」