このページでは、ソースから Bazel をインストールする方法と、一般的な問題のトラブルシューティングのヒントを紹介します。
ソースから Bazel をビルドするには、次のいずれかを行います。
既存の Bazel バイナリを使用してビルドします。
ブートストラップと呼ばれる既存の Bazel バイナリを使用せずにビルドします。
Bazel を使用した Bazel をビルドする
概要
GitHub リリースページまたは Bazelisk で最新の Bazel リリースを入手します。
GitHub から Bazel のソースをダウンロードし、どこかに解凍します。または、https://github.com/bazelbuild/bazel からソースツリーの git clone を行うこともできます。
ブートストラップと同じ前提条件をインストールします(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)
それ以外の場合は以下のとおりです。
最新のソースを 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
を実行して小さいバイナリを生成しますが、ビルドに時間がかかります。出力は
bazel-bin/src/bazel-dev
(またはbazel-bin/src/bazel
)に生成されます。
ステップ 4b: Windows で Bazel をビルドする
Unix 系システムの手順については、Ubuntu Linux, macOS, and other Unix like systems をご覧ください。
目標: 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-<version>-dist.zip
をダウンロードします(例:bazel-0.28.1-dist.zip
)。注意:
- アーキテクチャに依存しない単一の配布アーカイブがあります。アーキテクチャや OS 固有のディストリビューション アーカイブはありません。
- これらのソースは GitHub ソースツリーとは異なります。Bazel をブートストラップするには、ディストリビューション アーカイブを使用する必要があります。GitHub からクローン作成されたソースツリーは使用できません。(配布アーカイブには、通常の Git ソースツリーの一部ではなく、ブートストラップに必要な生成されたソースファイルが含まれています)。
ディストリビューション アーカイブをディスク上の任意の場所に解凍します。
Bazel のリリースキー 3D5919B448457EE0 による署名を検証する必要があります。
ステップ 2a: Ubuntu Linux、macOS、その他の Unix 系システムで Bazel をブートストラップする
Windows 用の手順については、Windows での Bazel をブートストラップするをご覧ください。
2.1. 前提条件をインストールする
Bash
zip、解凍
C++ ビルド ツールチェーン
JDK.バージョン 11 が必須です。
Python。バージョン 2 と 3 がサポートされています。いずれかをインストールすれば十分です。
たとえば Ubuntu Linux では、次のコマンドを使用してこれらの要件をインストールできます。
sudo apt-get install build-essential openjdk-11-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.バージョン 11 が必須です。
Python。バージョン 2 と 3 がサポートされています。いずれかをインストールすれば十分です。Windows ネイティブ バージョンが必要です(https://www.python.org からダウンロード可能)。pacman を介して MSYS2 でインストールされたバージョンは機能しません。
2.2. Windows での Bazel のブートストラップ
MSYS2 シェルを開きます。
次の環境変数を設定します。
BAZEL_VS
またはBAZEL_VC
(同じではありません): Visual Studio ディレクトリのパス(BAZEL_VS)または Visual C++ ディレクトリ(BAZEL_VC)に設定します。どちらかを設定すれば十分です。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/jdk1.8.0_112"
または(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/jdk1.8.0_112"
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 から実行できます。