ソースから Bazel をコンパイルする

<ph type="x-smartling-placeholder"></ph> 問題を報告する ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

このページでは、ソースから Bazel をインストールする方法と、 一般的な問題のトラブルシューティングのヒントを紹介します。

Bazel をソースからビルドするには、次のいずれかを行います。

Bazel を使用して Bazel をビルドする

概要

  1. 以下から最新の Bazel リリースを入手してください: GitHub のリリースページ、または Bazelisk

  2. GitHub から Bazel のソースをダウンロードする どこかで抽出します または、https://github.com/bazelbuild/bazel からソースツリーを git clone で作成することもできます。

  3. ブートストラップと同じ前提条件をインストールします( Unix 系システムの場合 Windows の場合

  4. Bazel を使用して Bazel の開発ビルドをビルドします。 bazel build //src:bazel-dev(または bazel build //src:bazel-dev.exe Windows)

  5. 結果のバイナリは 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)。

それ以外の場合は以下のとおりです。

  1. ダウンロード: 最新のソースを ZIP ファイルとしてダウンロードできます。

  2. コンテンツをどこかに抽出します。

    たとえば、ホーム ディレクトリの下に bazel-src ディレクトリを作成し、 抽出できます

ステップ 3: 前提条件をインストールする

ブートストラップと同じ前提条件(以下を参照)をインストールします(JDK、C++)。 コンパイラ、MSYS2(Windows 上でビルドする場合)など

ステップ 4a: Ubuntu Linux、macOS などの Unix 系システムで Bazel をビルドする

Windows 用の手順については、Windows で Bazel をビルドするをご覧ください。

目標: Bazel を実行して、カスタム Bazel バイナリ(bazel-bin/src/bazel-dev)をビルドします。

手順:

  1. Bash ターミナルを起動する

  2. cd で、Bazel のソースを抽出(またはクローンを作成)したディレクトリに移動します。

    たとえば、ホーム ディレクトリの下にソースを抽出した場合は、次のコマンドを実行します。

    cd ~/bazel-src
    
  3. ソースから Bazel をビルドします。

    bazel build //src:bazel-dev
    

    または、bazel build //src:bazel --compilation_mode=opt を実行します。 小さなバイナリを生成しますが、ビルドに時間がかかります。

  4. 出力は 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)。

手順:

  1. コマンド プロンプトを起動します([スタート] メニュー > [ファイル名を指定して実行] > [cmd.exe])

  2. cd で、Bazel のソースを抽出(またはクローンを作成)したディレクトリに移動します。

    たとえば、ホーム ディレクトリの下にソースを抽出した場合は、次のコマンドを実行します。

    cd %USERPROFILE%\bazel-src
    
  3. ソースから Bazel をビルドします。

    bazel build //src:bazel-dev.exe
    

    または、bazel build //src:bazel.exe --compilation_mode=opt を実行してより小さいバイナリを生成することもできますが、ビルドには時間がかかります。

  4. 出力は bazel-bin\src\bazel-dev.exe(または bazel-bin\src\bazel.exe)。

ステップ 5: ビルドされたバイナリをインストールする

インストールするものはありません

前のステップの出力は、自己完結型の Bazel バイナリです。コピー 任意のディレクトリに移動してすぐに使用できます。(そのディレクトリがオンプレミスで 「bazel」を実行できるように PATH をeverywhere.)


Bazel をゼロからビルドする(ブートストラップ)

既存の Bazel バイナリを使用せずに、Bazel をゼロからビルドすることもできます。

ステップ 1: Bazel のソース(配布アーカイブ)をダウンロードする

(この手順はすべてのプラットフォームで同じです)。

  1. bazel-<version>-dist.zip のダウンロード元 GitHub など bazel-0.28.1-dist.zip

    注意:

    • アーキテクチャに依存しない単一の配布アーカイブがあります。 アーキテクチャ固有または OS 固有の配布アーカイブはありません。
    • これらのソースは GitHub ソースツリーと同じではありません。マイページ Bazel をブートストラップするには、ディストリビューション アーカイブを使用する必要があります。できないこと GitHub からクローンを作成したソースツリーを使用します。(配布アーカイブには、 ブートストラップに必要であり、 ソースツリーを使用します)。
  2. ディスク上の任意の場所に配布アーカイブを展開します。

    Bazel のシグネチャを検証する必要があります。 リリースキー 3D5919B448457EE0

ステップ 2a: Ubuntu Linux、macOS など、Unix 系のシステムで Bazel をブートストラップする

Windows 用の手順については、Windows で Bazel をブートストラップするをご覧ください。

2.1. 前提条件をインストールする

  • Bash

  • zip、unzip

  • C++ ビルド ツールチェーン

  • JDK。バージョン 11 が必要です。

  • Python。バージョン 2 と 3 がサポートされています。いずれかをインストールすると 十分です

たとえば Ubuntu Linux では、次のコマンドを使用してこれらの要件をインストールできます。 次のコマンドを実行します。

sudo apt-get install build-essential openjdk-11-jdk python zip unzip

2.2. Unix で Bazel をブートストラップする

  1. シェルまたはターミナル ウィンドウを開きます。

  2. cd で、配布アーカイブを解凍したディレクトリに移動します。

  3. コンパイル スクリプト 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 シェル

  • MSYS2 パッケージ(zip 圧縮と解凍用)。MSYS2 シェルで次のコマンドを実行します。

    pacman -S zip unzip patch
    
  • Visual C++ コンパイラ。Visual C++ コンパイラをインストールする Visual Studio 2015 以降のバージョンを使用するか、最新のビルドツール (Visual Studio 2017 の場合)をご覧ください。

  • JDK。バージョン 11 が必要です。

  • Python。バージョン 2 と 3 がサポートされています。いずれかをインストールすると 十分ですWindows ネイティブ バージョン(以下からダウンロード可能)が必要です。 https://www.python.org).経由でインストールされたバージョン MSYS2 の pacman は機能しません。

2.2. Windows で Bazel をブートストラップする

  1. MSYS2 シェルを開きます。

  2. 次の環境変数を設定します。

    • BAZEL_VS または BAZEL_VC(同じではない): Visual Studio ディレクトリ(BAZEL_VS)または Visual Studio Code の 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/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"
    
  3. cd で、配布アーカイブを解凍したディレクトリに移動します。

  4. コンパイル スクリプト 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