---
title: 1.5 分散ビルドの環境構築
description: "## 1.5 分散ビルドの環境構築 ネイティブ開発環境では、汎用PCと比較すると…"
url: "https://manual.amnimo.com/docs/dev-environment-dev/1-5-dev/"
updated: "2026-11-09"
category: デベロッパーズマニュアル / 第1章　エッジゲートウェイの開発環境
---

# 1.5 分散ビルドの環境構築

## 1.5 分散ビルドの環境構築

ネイティブ開発環境では、汎用PCと比較すると、エッジゲートウェイのCPU処理能力のパフォーマンスが劣ります。そのため、クロス開発環境のビルド時間と比較すると、多くの時間が費やされます。プログラムの規模が大きくなると、この差は顕著になります。

以下では、distccを使った分散ビルド環境を構築することで、ネイティブ開発環境のビルド処理を高速化する方法について説明します。

### 1.5.1 PC環境の準備

ビルド処理の分散先として、ホスト側を利用します。

#### distcc/ccacheパッケージのインストール

PC側のUbuntu環境で、aptパッケージリストの更新とアップグレードをして、以下のaptパッケージをインストールしてください。

**実行環境**: ホストマシン（PC）

```
$ sudo apt install distcc ccache
```

#### distccの設定ファイルの修正

/etc/default/distccの以下の箇所を編集します。

**実行環境**: ホストマシン（PC）

```
# Defaults for distcc initscript
# sourced by /etc/init.d/distcc

#
# should distcc be started on boot?
#
STARTDISTCC="true" # STARTDISTCC="false"を"true"にする

#
# Which networks/hosts should be allowed to connect to the daemon?
# You can list multiple hosts/networks separated by spaces.
# Networks have to be in CIDR notation, f.e. 192.168.0.0/24
# Hosts are represented by a single IP Adress
#
ALLOWEDNETS="192.168.0.0/24" # ALLOWEDNETS=に依頼元（エッジゲートウェイ）のIPアドレスを含むサブネットを指定する

#
# Which interface should distccd listen on?
# You can specify a single interface, identified by it's IP address, here.
#
LISTENER="192.168.0.1" # LISTENER=にPCのIPアドレス（エッジゲートウェイからアクセス可能なインターフェイスのIPアドレス）を指定する

#
# You can specify a (positive) nice level for the distcc process here
#
NICE="10"  # NICE（優先度高-20～19優先度低）を指定する。ご使用の開発環境に合わせて設定してください。

#
# You can specify a maximum number of jobs, the server will accept concurrently
#
JOBS="8" # 分散ビルドするJOB数を指定。ご使用の開発環境に合わせて設定してください。

#
# Enable Zeroconf support?
# If enabled, distccd will register via mDNS/DNS-SD.
# It can then automatically be found by zeroconf enabled distcc clients
# without the need of a manually configured host list.
#
# ZEROCONF="true"

ZEROCONF="false"
```

#### distccデーモンの再起動

**実行環境**: ホストマシン（PC）

```
$ sudo systemctl daemon-reload
$ sudo systemctl enable distcc
$ sudo systemctl restart distcc
$ ss -ltn | grep 3632
```

LISTENER に指定した IP アドレス（例では 192.168.0.1）の 3632 番ポート（distcc）が LISTEN になっていることを確認します。

> ![note](https://manual.amnimo.com/wp-content/uploads/2026/11/note.png) **補足**: 以前の版の本書では `netstat -a | grep distcc` で確認していました。Ubuntu 24.04 LTS のホストマシンには、netstat（net-tools パッケージ）が標準では入っていません。

### 1.5.2 エッジゲートウェイの準備

ホスト側と同様に、distcc/ccacheのインストール、設定ファイルの編集、デーモンの再起動をします。

ただし、設定ファイルは、STARTDISTCCのみを変更します。

> ![note](https://manual.amnimo.com/wp-content/uploads/2026/11/note.png) **補足**: ホストマシン（PC）とエッジゲートウェイでは、同じメジャーバージョンの gcc を使ってください。distcc は、分散先でも同じコンパイラーでコンパイルされることを前提にしています。エッジゲートウェイの gcc は、『[1.4 ネイティブ開発環境](/docs/dev-environment-dev/1-4-dev/#14-%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83)』の手順でインストールしたものです。

#### distcc/ccacheパッケージのインストール

**実行環境**: エッジゲートウェイ

```
admin@amnimo:~$ sudo apt install distcc ccache
```

#### distccの設定ファイルの修正

/etc/default/distccの以下の箇所を編集します。

**実行環境**: エッジゲートウェイ

```
# Defaults for distcc initscript
# sourced by /etc/init.d/distcc

#
# should distcc be started on boot?
#
STARTDISTCC="true" # STARTDISTCC="false"を"true"にする

# 以降はデフォルト

…
```

#### distccデーモンの再起動

**実行環境**: エッジゲートウェイ

```
admin@amnimo:~$ sudo systemctl daemon-reload
admin@amnimo:~$ sudo systemctl enable distcc
admin@amnimo:~$ sudo systemctl restart distcc
admin@amnimo:~$ netstat -a | grep distcc
    tcp        0      0 localhost:distcc        0.0.0.0:*               LISTEN	←出力されることを確認
```

#### 環境変数の設定

分散ビルドの環境変数を設定します。`/usr/bin/aarch64-linux-gnu-gcc` などのコマンドは、『[1.4 ネイティブ開発環境](/docs/dev-environment-dev/1-4-dev/#14-%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83)』で gcc などをインストールした後に使えるようになります。

**実行環境**: エッジゲートウェイ

```
export CCACHE_PREFIX=distcc
export CC="ccache /usr/bin/aarch64-linux-gnu-gcc"
export CXX="ccache /usr/bin/aarch64-linux-gnu-g++"
export AS="/usr/bin/aarch64-linux-gnu-as"
export AR="/usr/bin/aarch64-linux-gnu-ar"
export CPP="/usr/bin/aarch64-linux-gnu-cpp"
export LD="/usr/bin/aarch64-linux-gnu-ld"
export PKG_CONFIG="/usr/bin/aarch64-linux-gnu-pkg-config"
export DISTCC_HOSTS="192.168.0.1/8 127.0.0.1"
```

> ![note](https://manual.amnimo.com/wp-content/uploads/2026/11/note.png) **補足**: **DISTCC_HOSTS**
>
>
>
> 複数のIPアドレスを追加することができます。左から右方向に、能力の高いサーバーから低いサーバーの順に並べてください。
>
>
>
> DISTCC_HOSTSに設定した順で処理を振り分けます。対象のIPアドレスのdistccと接続できない場合、次に指定したIPアドレスに処理が振り分けられます。
>
>
>
> 192.168.0.1/8の8は同時に実行するスレッド数を示します。省略すると、デフォルト値として4が設定されます。分散先distccの設定ファイルのJOBSと同じ数値を指定してください。

### 1.5.3 分散ビルドの実行

#### makeを用いる場合の並行処理指定

Makefileがあるビルド環境を前提に説明します。-jに続けて数値を指定することで、並行処理の数を指定することが可能です。

**実行環境**: エッジゲートウェイ

```
admin@amnimo:~$ make -j8
```

#### 分散ビルド状態の確認

distccの動作状況は、以下のコマンドで確認することができます。

**実行環境**: エッジゲートウェイ

```
admin@amnimo:~$ watch distccmon-text
```

##### 正常動作

```
  8999  Compile     yyy.c             127.0.0.1[1]
  9100  Compile     zzz.c             192.168.0.1[0]
  9094  Compile     aaa.c             192.168.0.1[1]
```

Ctrl+C で終了します。
