このページでは、ソースから Bazel をインストールする方法と、一般的な問題のトラブルシューティングのヒントについて説明します。
ソースから Bazel をビルドするには、次のいずれかを行います。
- 既存の Bazel バイナリなしでビルドします。これは、ブートストラップと呼ばれます。 
Bazel を使用して Bazel をビルドする
概要
- GitHub リリースページまたは Bazelisk から最新の Bazel リリースを入手します。 
- GitHub から Bazel のソースをダウンロードし、どこかに抽出します。または、https://github.com/bazelbuild/bazel からソースツリーの git クローンを作成することもできます。 
- ブートストラップと同じ前提条件をインストールします(Unix 系のシステムの場合または Windows の場合を参照)。 
- Bazel を使用して Bazel の開発ビルドをビルドします。 - bazel build //src:bazel-dev(Windows の場合は- bazel build //src:bazel-dev.exe)
- 生成されたバイナリは - bazel-bin/src/bazel-dev(Windows の場合は- bazel-bin\src\bazel-dev.exe)にあります。任意の場所にコピーして、追加のインストールなしですぐに使用できます。
詳しい手順については、以下をご覧ください。
ステップ 1: 最新の Bazel リリースを入手する
目標: Bazel のリリース バージョンをインストールまたはダウンロードします。ターミナルで bazel と入力して、実行できることを確認します。
理由: GitHub ソースツリーから Bazel をビルドするには、既存の Bazel バイナリが必要です。パッケージ マネージャーからインストールするか、GitHub からダウンロードできます。Bazel のインストールをご覧ください。(または、ゼロから構築(ブートストラップ)することもできます)。
トラブルシューティング:
- 端末で - bazelと入力しても Bazel を実行できない場合:- Bazel バイナリのディレクトリが PATH にない可能性があります。 - これは大きな問題ではありません。 - bazelと入力する代わりに、フルパスを入力する必要があります。
- Bazel バイナリ自体が - bazel(Unix の場合)または- bazel.exe(Windows の場合)と呼ばれていない可能性があります。- これは大きな問題ではありません。バイナリの名前を変更するか、 - bazelの代わりにバイナリの名前を入力します。
- バイナリが実行可能でない可能性があります(Unix の場合)。 - chmod +x /path/to/bazelを実行して、バイナリを実行可能にする必要があります。
 
ステップ 2: GitHub から Bazel のソースをダウンロードする
Git に精通している場合は、git clone https://github.com/bazelbuild/bazel を実行します。
それ以外の場合は以下のとおりです。
- コンテンツをどこかに抽出します。 - たとえば、ホーム ディレクトリの下に - bazel-srcディレクトリを作成して、そこに抽出します。
ステップ 3: 前提条件をインストールする
ブートストラップと同じ前提条件(JDK、C++ コンパイラ、MSYS2(Windows でビルドする場合)など)をインストールします。
ステップ 4a: Ubuntu Linux、macOS、その他の Unix 系システムで Bazel をビルドする
Windows の手順については、Windows で Bazel をビルドするをご覧ください。
目標: Bazel を実行してカスタム Bazel バイナリ(bazel-bin/src/bazel-dev)をビルドします。
手順:
- Bash ターミナルを起動する 
- cdを実行して、Bazel のソースを抽出(またはクローン)したディレクトリに移動します。- たとえば、ソースをホーム ディレクトリに抽出した場合は、次のように実行します。 - cd ~/bazel-src
- ソースから Bazel をビルドします。 - bazel build //src:bazel-dev- または、 - bazel build //src:bazel --compilation_mode=optを実行してバイナリを小さくすることもできますが、ビルドに時間がかかります。
- 出力は - bazel-bin/src/bazel-dev(または- bazel-bin/src/bazel)にあります。
ステップ 4b: Windows で Bazel をビルドする
Unix 系のシステムの手順については、Ubuntu Linux、macOS、その他の Unix 系のシステムをご覧ください。
目標: Bazel を実行してカスタム Bazel バイナリ(bazel-bin\src\bazel-dev.exe)をビルドします。
手順:
- コマンド プロンプトを起動します([スタート] メニュー > [ファイル名を指定して実行] > 「cmd.exe」)。 
- cdを実行して、Bazel のソースを抽出(またはクローン)したディレクトリに移動します。- たとえば、ソースをホーム ディレクトリに抽出した場合は、次のように実行します。 - cd %USERPROFILE%\bazel-src
- ソースから Bazel をビルドします。 - bazel build //src:bazel-dev.exe- または、 - bazel build //src:bazel.exe --compilation_mode=optを実行してバイナリを小さくすることもできますが、ビルドに時間がかかります。
- 出力は - bazel-bin\src\bazel-dev.exe(または- bazel-bin\src\bazel.exe)にあります。
ステップ 5: ビルドされたバイナリをインストールする
実際には、インストールするものはありません。
前のステップの出力は、自己完結型の Bazel バイナリです。任意のディレクトリにコピーしてすぐに使用できます。(このディレクトリが PATH にあると、どこからでも「bazel」を実行できるので便利です)。
Bazel をゼロからビルドする(ブートストラップ)
既存の Bazel バイナリを使用せずに、Bazel をゼロからビルドすることもできます。
ステップ 1: Bazel のソース(配布アーカイブ)をダウンロードする
(この手順はすべてのプラットフォームで同じです)。
- GitHub( - bazel-0.28.1-dist.zipなど)から- bazel-<version>-dist.zipをダウンロードします。- 注意: - アーキテクチャに依存しない単一の配布アーカイブがあります。アーキテクチャ固有または OS 固有の配布アーカイブはありません。
- これらのソースは GitHub ソースツリーと同じではありません。Bazel をブートストラップするには、ディストリビューション アーカイブを使用する必要があります。GitHub からクローンされたソースツリーは使用できません。(配布アーカイブには、ブートストラップに必要な生成されたソースファイルが含まれています。これは通常の Git ソースツリーの一部ではありません)。
 
- ディスク上の任意の場所に配布アーカイブを解凍します。 - Bazel のリリースキー 3D5919B448457EE0 によって作成された署名を確認する必要があります。 
ステップ 2a: Ubuntu Linux、macOS、その他の Unix 系のシステムで Bazel をブートストラップする
Windows の手順については、Windows で Bazel をブートストラップするをご覧ください。
2.1. 前提条件をインストールする
- Bash 
- zip、unzip 
- C++ ビルド ツールチェーン 
- JDK. バージョン 21 が必要です。 
- Python。バージョン 2 と 3 がサポートされています。どちらか 1 つをインストールすれば十分です。 
たとえば、Ubuntu Linux では、次のコマンドを使用してこれらの要件をインストールできます。
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Unix で Bazel をブートストラップする
- シェルまたはターミナル ウィンドウを開きます。 
- cdを、配布アーカイブを解凍したディレクトリに移動します。
- コンパイル スクリプト - env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.shを実行します。
コンパイルされた出力は output/bazel に配置されます。これは、JDK が埋め込まれていない自己完結型の Bazel バイナリです。どこにでもコピーできますし、その場で使用することもできます。便宜上、このバイナリを PATH(Linux の /usr/local/bin など)にあるディレクトリにコピーします。
再現可能な方法で bazel バイナリをビルドするには、「コンパイル スクリプトを実行する」ステップで SOURCE_DATE_EPOCH も設定します。
ステップ 2b: Windows で Bazel をブートストラップする
Unix 系のシステムの手順については、Ubuntu Linux、macOS、その他の Unix 系のシステムで Bazel をブートストラップするをご覧ください。
2.1. 前提条件をインストールする
- zip と unzip の MSYS2 パッケージ。MSYS2 シェルで次のコマンドを実行します。 - pacman -S zip unzip patch
- Visual C++ コンパイラ。Visual Studio 2015 以降の一部として、または最新の Build Tools for Visual Studio 2017 をインストールして、Visual C++ コンパイラをインストールします。 
- JDK. バージョン 21 が必要です。 
- Python。バージョン 2 と 3 がサポートされています。どちらか 1 つをインストールすれば十分です。Windows ネイティブ バージョン(https://www.python.org からダウンロード可能)が必要です。MSYS2 の pacman でインストールされたバージョンは動作しません。 
2.2. Windows で Bazel をブートストラップする
- MSYS2 シェルを開きます。 
- 次の環境変数を設定します。 - BAZEL_VSまたは- BAZEL_VC(同じではありません): Visual Studio ディレクトリ(BAZEL_VS)または Visual C++ ディレクトリ(BAZEL_VC)のパスに設定します。いずれか 1 つを設定すれば十分です。
- BAZEL_SH: MSYS2- bash.exeのパス。以下の例のコマンドをご覧ください。- C:\Windows\System32\bash.exeに設定しないでください。(Windows Subsystem for Linux をインストールしている場合は、このファイルがあります)。Bazel はこのバージョンの- bash.exeをサポートしていません。
- PATH: Python ディレクトリを追加します。
- JAVA_HOME: JDK ディレクトリに設定します。
 - 例(BAZEL_VS を使用): - export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools" export BAZEL_SH="$(cygpath -m $(realpath $(which bash)))" export PATH="/c/python27:$PATH" export JAVA_HOME="C:/Program Files/Java/jdk-21"- または(BAZEL_VC を使用する場合): - export BAZEL_VC="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC" export BAZEL_SH="$(cygpath -m $(realpath $(which bash)))" export PATH="/c/python27:$PATH" export JAVA_HOME="C:/Program Files/Java/jdk-21"
- cdを、配布アーカイブを解凍したディレクトリに移動します。
- コンパイル スクリプト - env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.shを実行します。
コンパイルされた出力は output/bazel.exe に配置されます。これは、JDK が埋め込まれていない自己完結型の Bazel バイナリです。どこにでもコピーできますし、その場で使用することもできます。便宜上、このバイナリを PATH にあるディレクトリにコピーします。
再現可能な方法で bazel.exe バイナリをビルドするには、「コンパイル スクリプトを実行する」ステップで SOURCE_DATE_EPOCH も設定します。
MSYS2 シェルから Bazel を実行する必要はありません。Bazel は、コマンド プロンプト(cmd.exe)または PowerShell から実行できます。