このページでは、ソースから Bazel をインストールする方法と、 一般的な問題のトラブルシューティングのヒントについて説明します。
ソースから Bazel をビルドするには、次のいずれかを行います。
既存の Bazel バイナリを使用してビルドする
Bazel を使用して Bazel をビルドする
概要
GitHub から Bazel のソースをダウンロード し、任意の場所に抽出します。 または、https://github.com/bazelbuild/bazel からソースツリーを git clone することもできます。
ブートストラップと同じ前提条件をインストールします( Unix 系システムの場合は、または Windows の場合はを参照してください)。
Bazel を使用して Bazel の開発ビルドを作成します:
bazel build //src:bazel-dev(bazel build //src:bazel-dev.exeWindows の場合は )生成されたバイナリは
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 ターミナルを起動します。
cdBazel のソースを抽出(またはクローン)したディレクトリに移動します。たとえば、ホーム ディレクトリの下にソースを抽出した場合は、次のように実行します。
cd ~/bazel-srcソースから Bazel をビルドします。
bazel build //src:bazel-devまたは、
bazel build //src:bazel --compilation_mode=optを実行して、より小さいバイナリを生成することもできますが、ビルドに時間がかかります。--stamp --embed_label=X.Y.Zフラグを指定してビルドすると、バイナリに Bazel バージョンが埋め込まれるため、bazel --versionで指定されたバージョンが出力されます。出力は
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」)。
cdBazel のソースを抽出(またはクローン)したディレクトリに移動します。たとえば、ホーム ディレクトリの下にソースを抽出した場合は、次のように実行します。
cd %USERPROFILE%\bazel-srcソースから Bazel をビルドします。
bazel build //src:bazel-dev.exe
または、
bazel build //src:bazel.exe --compilation_mode=optを実行して、より小さいバイナリを生成することもできますが、ビルドに時間がかかります。--stamp --embed_label=X.Y.Zフラグを指定してビルドすると、バイナリに Bazel バージョンが埋め込まれるため、bazel --versionで指定されたバージョンが出力されます。出力は
bazel-bin\src\bazel-dev.exe(またはbazel-bin\src\bazel.exe)にあります。
ステップ 5: ビルドされたバイナリをインストールする
実際には、インストールするものはありません。
前のステップの出力は、自己完結型の Bazel バイナリです。任意のディレクトリにコピーして、すぐに使用できます。(そのディレクトリが PATH にあると、どこでも「bazel」を実行できるため便利です)。
Bazel をゼロからビルドする(ブートストラップ)
既存の Bazel バイナリを使用せずに、Bazel をゼロからビルドすることもできます。
ステップ 1: Bazel のソース(配布アーカイブ)をダウンロードする
(このステップはすべてのプラットフォームで同じです)。
-
注意:
- 単一のアーキテクチャに依存しない 配布アーカイブがあります。 アーキテクチャ固有または 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。バージョン 3 が必要です。
たとえば、Ubuntu Linux では、次のコマンドを使用してこれらの要件をインストールできます。
sudo apt-get install build-essential openjdk-21-jdk python3 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 patchVisual C++ コンパイラ 。Visual Studio 2015 以降の一部として Visual C++ コンパイラをインストールするか、Visual Studio 2017 用の最新のBuild Tools をインストールします。
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: MSYS2bash.exeのパス。以下の例の コマンドをご覧ください。C:\Windows\System32\bash.exeに設定しないでください。(Linux 用 Windows サブシステムをインストールした場合、そのファイルがあります )。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 を実行する必要はありません。コマンド プロンプト(cmd.exe)または PowerShell から Bazel を実行できます。