本頁面說明如何從來源安裝 Bazel,並提供 常見問題的疑難排解提示。
如要從來源建構 Bazel,請執行下列任一操作:
不使用現有 Bazel 二進位檔建構模型 如同啟動程序。
使用 Bazel 建構 Bazel
摘要
您可從 GitHub 版本頁面,或 Bazelisk。
從 GitHub 下載 Bazel 來源 並將資料擷取至其他地方 您也可以前往 https://github.com/bazelbuild/bazel 以 Git 複製原始碼
安裝與啟動程序相同的必要條件 (請參閱 適用於類 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 的發布版本。確保您可以執行
只要在終端機中輸入 bazel
即可。
原因:如要從 GitHub 原始碼樹狀結構建構 Bazel,您必須 Bazel 二進位檔。您可以從套件管理員中安裝,或從套件管理員下載 GitHub。請參閱安裝 Bazel。(您也可以從 刮痕 (Bootstrap)。
疑難排解:
如果您無法透過在終端機中輸入
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 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 二進位檔,您可以複製 新增至任何目錄並立即使用(如果目錄位於 路徑,讓您可以執行「bazel」everywhere.)
從頭開始建構 Bazel (啟動程序)
您也可以從頭開始建構 Bazel,不必使用現有的 Bazel 二進位檔。
步驟 1:下載 Bazel 的來源 (分散式封存檔)
(這個步驟適用於所有平台)。
從以下位置下載
bazel-<version>-dist.zip
: GitHub 例如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、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
中。這是獨立的
Bazel 二進位檔,不包含嵌入 JDK。您可以將檔案複製到任何地方,或使用
就在原地為方便起見,請將此二進位檔複製到您
PATH
(例如在 Linux 上為 /usr/local/bin
)。
如要以可重現的方式建構 bazel
二進位檔,請一併設定
SOURCE_DATE_EPOCH
參閱「執行編譯指令碼」一節採用
步驟 2b:在 Windows 上啟動 Bazel
如需 Unix 類系統的操作說明,請參閱 在 Ubuntu Linux、macOS 及其他類似 Unix 的系統上啟動 Bazel。
2.1. 安裝必備條件
用於 ZIP 和解壓縮的 MSYS2 套件。在 MSYS2 殼層中執行下列指令:
pacman -S zip unzip patch
Visual C++ 編譯器。安裝 Visual C++ 編譯器 ,或安裝最新的建構工具 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 的路徑 C++ 目錄 (BAZEL_VC)。只要設定其中之一即可。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
中。這是獨立的
Bazel 二進位檔,不包含嵌入 JDK。您可以將檔案複製到任何地方,或使用
就在原地為方便起見,請將這個二進位檔複製到
您的 PATH
。
如要以可重現的方式建構 bazel.exe
二進位檔,請一併設定
SOURCE_DATE_EPOCH
參閱「執行編譯指令碼」一節採用
您不需要從 MSYS2 殼層執行 Bazel。您可以透過
命令提示字元 (cmd.exe
) 或 PowerShell。