このページでは、ソースから Bazel をインストールする方法と、 一般的な問題のトラブルシューティングのヒントを紹介します。
Bazel をソースからビルドするには、次のいずれかを行います。
既存の Bazel バイナリを使用してビルドする
既知の Bazel バイナリなしでビルドします。 ブートストラップなどを使用します。
Bazel を使用して Bazel をビルドする
概要
以下から最新の Bazel リリースを入手してください: GitHub のリリースページ、または Bazelisk。
GitHub から Bazel のソースをダウンロードする どこかで抽出します または、https://github.com/bazelbuild/bazel からソースツリーを git clone で作成することもできます。
ブートストラップと同じ前提条件をインストールします( Unix 系システムの場合 Windows の場合)
Bazel を使用して Bazel の開発ビルドをビルドします。
bazel build //src:bazel-dev
(またはbazel build //src:bazel-dev.exe
Windows)結果のバイナリは
bazel-bin/src/bazel-dev
にあります。 (Windows の場合はbazel-bin\src\bazel-dev.exe
)。コピーはどこにでもコピーできます。 すぐに使用できます。
詳しい手順については以下をご覧ください。
ステップ 1: 最新の Bazel リリースを入手する
目標: リリース バージョンの Bazel をインストールまたはダウンロードします。Cloud Shell から
ターミナルで「bazel
」と入力します。
理由: GitHub ソースツリーから Bazel をビルドするには、 Bazel バイナリ。パッケージ管理システムからインストールするか、 GitHub で管理できます。Bazel のインストールをご覧ください。(または、 scratch(ブートストラップ)をご覧ください)。
トラブルシューティング:
ターミナルで「
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)。
それ以外の場合は以下のとおりです。
ダウンロード: 最新のソースを ZIP ファイルとしてダウンロードできます。
コンテンツをどこかに抽出します。
たとえば、ホーム ディレクトリの下に
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
を実行します。 小さなバイナリを生成しますが、ビルドに時間がかかります。--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])
cd
で、Bazel のソースを抽出(またはクローンを作成)したディレクトリに移動します。たとえば、ホーム ディレクトリの下にソースを抽出した場合は、次のコマンドを実行します。
cd %USERPROFILE%\bazel-src
ソースから Bazel をビルドします。
bazel ビルド //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 バイナリです。コピー 任意のディレクトリに移動してすぐに使用できます。(そのディレクトリがオンプレミスで 「bazel」を実行できるように PATH をeverywhere.)
Bazel をゼロからビルドする(ブートストラップ)
既存の Bazel バイナリを使用せずに、Bazel をゼロからビルドすることもできます。
ステップ 1: Bazel のソース(配布アーカイブ)をダウンロードする
(この手順はすべてのプラットフォームで同じです)。
bazel-<version>-dist.zip
のダウンロード元 GitHub などbazel-0.28.1-dist.zip
。注意:
- アーキテクチャに依存しない単一の配布アーカイブがあります。 アーキテクチャ固有または OS 固有の配布アーカイブはありません。
- これらのソースは GitHub ソースツリーと同じではありません。マイページ Bazel をブートストラップするには、ディストリビューション アーカイブを使用する必要があります。できないこと GitHub からクローンを作成したソースツリーを使用します。(配布アーカイブには、 ブートストラップに必要であり、 ソースツリーを使用します)。
ディスク上の任意の場所に配布アーカイブを展開します。
Bazel のシグネチャを検証する必要があります。 リリースキー 3D5919B448457EE0
ステップ 2a: Ubuntu Linux、macOS など、Unix 系のシステムで Bazel をブートストラップする
Windows 用の手順については、Windows で Bazel をブートストラップするをご覧ください。
2.1. 前提条件をインストールする
Bash
zip、unzip
C++ ビルド ツールチェーン
JDK。バージョン 21 が必要です。
Python。バージョン 2 と 3 がサポートされています。いずれかをインストールすると 十分です
たとえば 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 バイナリ。任意の場所にコピーするか、
あります。便宜上、このバイナリを、Compute Engine VM 上の
PATH
(Linux では /usr/local/bin
など)。
再現可能な方法で bazel
バイナリをビルドするには、以下も設定します。
SOURCE_DATE_EPOCH
「コンパイル スクリプトの実行」の示します。
ステップ 2b: Windows で Bazel をブートストラップする
Unix 系のシステムの手順については、以下をご覧ください。 Ubuntu Linux、macOS など、Unix 系のシステムで Bazel をブートストラップします。
2.1. 前提条件をインストールする
MSYS2 パッケージ(zip 圧縮と解凍用)。MSYS2 シェルで次のコマンドを実行します。
pacman -S zip unzip patch
Visual C++ コンパイラ。Visual C++ コンパイラをインストールする Visual Studio 2015 以降のバージョンを使用するか、最新のビルドツール (Visual Studio 2017 の場合)をご覧ください。
JDK。バージョン 21 が必要です。
Python。バージョン 2 と 3 がサポートされています。いずれかをインストールすると 十分ですWindows ネイティブ バージョン(以下からダウンロード可能)が必要です。 https://www.python.org).経由でインストールされたバージョン MSYS2 の pacman は機能しません。
2.2. Windows で Bazel をブートストラップする
MSYS2 シェルを開きます。
次の環境変数を設定します。
BAZEL_VS
またはBAZEL_VC
(同じではない): Visual Studio ディレクトリ(BAZEL_VS)または Visual Studio Code の C++ ディレクトリ(BAZEL_VC)。いずれか 1 つを設定するだけで十分です。BAZEL_SH
: MSYS2bash.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 バイナリ。任意の場所にコピーするか、
あります。便宜上、このバイナリを、Compute Engine VM 上の
PATH
。
再現可能な方法で bazel.exe
バイナリをビルドするには、以下も設定します。
SOURCE_DATE_EPOCH
「コンパイル スクリプトの実行」の示します。
MSYS2 シェルから Bazel を実行する必要はありません。Bazel は以下から実行できます:
コマンド プロンプト(cmd.exe
)または PowerShell