使用源码编译 Bazel (引导指令)
原文标题:Compiling Bazel from Source (bootstrapping)
原文地址:https://docs.bazel.build/versions/master/install-compile-source.html
目录
使用源码编译 Bazel (引导指令)
你可以使用源码编译 Bazel ,而不必使用现有的一个二进制文件。
1 安装依赖项
Unix-like 系统
确保你已经安装了以下项目:
Bash
zip, unzip
C++ build toolchan
JDK 8 。你必须安装版本 8 的 JDK。 不支持其它比 8 高的版本。
Python 。支持 2 和 3 。
一个 Ubuntu Linux 的例子,你可以使用以下命令安装它们:
sudo apt-get install build-essential openjdk-8-jdk python zip unzip
Windows 系统
确保你已经安装了以下项目:
The required MSYS2 packages. 在 MSYS2 shell 中运行以下命令
pacman -Syu zip unzip
Visual C++ 编译器(compiler)。 安装的 VC++ 编译器至少是 Visual Studio 2015 或更新的版本,或者可以安装最新版本的Build Tools for Visual Studio 2017。
JDK 8 。你必须安装版本 8 的 JDK。 不支持其它比 8 高的版本。
Python 。支持 2 和 3 。但必须是 Windows-native version (下载自https://www.python.org)。不支持在 MSYS2 中使用 via pacman 安装的 Python。
2 下载并解压缩Bazel的源文件(distribution archive)
从 GitHub 下载 bazel-<version>-dist.zip
, e.g. bazel-0.15.2-dist.zip
.
注意: 存在一个 单一(single),独立结构(architecture-independent) 的分布式文档。不存在特定结构(architecture-specific)或者特定OS(OS-specific)的分布式存档。
注意: 你必须使用 distribution archive 从源码进行构建 Bazel 。你不能在 GitHub 中使用克隆 source tree。(distribution archive 包含了引导生成源码文件所需的源文件,而不是标准 Git source tree 的一部分)
我们建议同时验证由我们的 release key 48457EE0 生成的签名。
3 引导 Bazel
Unix-like 系统
在 Unix-like 系统中,比如 Ubuntu Linux 或是 macOS ,使用如下步骤:
1. 打开一个 shell 或 终端窗口。
2. 切换到你用于解压 distribution archive 的目录。
3. 运行命令:
bash ./compile.sh
。
编译输出被放在了output/bazel
中。这是一个没有嵌入 JDK 且独立的 Bazel 二进制文件。 你可以将它复制到环境变量PATH
中的目录中(例如在 Linux 中的/usr/local/bin
),或者直接使用。
Windows 系统
1. 打开 MSYS2 shell
2. 设置环境变量
BAZEL_VS
或BAZEL_VC
(它们是不同的):设置路径到 Visual Studio 的文件夹 (BAZEL_V S)或是设置路径到 Visual C++ 的文件夹 (BAZEL_V C)。只需设置其中一个。BAZEL_SH
:设置成 MSYS2bash.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. 切换到你用于解压 distribution archive 的目录。
4. 运行命令:
./compile.sh
。
编译输出被放在了output/bazel.exe
中。这是一个没有嵌入 JDK 且独立的 Bazel 二进制文件。 你可以将它复制到环境变量%PATH%
中的目录中,或者直接使用。
你不需要从 MSYS2 shell 启动 Bazel。你可以从命令提示符(cmd.exe
)或者 PowerShell 启动它。