最稳妥的安装方式是使用官方 apt 仓库:先装 curl、gnupg 等依赖,再导入 gpg 密钥到 /etc/apt/trusted.gpg.d/,添加 deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk11 源,最后执行 sudo apt update && sudo apt install bazel。

用 apt 装最稳,别碰老版本 installer.sh 脚本——它在 Ubuntu 22.04+ / Debian 12+ 上大概率失败,报错常是 Failed to determine Java version 或直接卡在 sandbox 权限拒绝。
为什么 apt 安装比手动脚本更可靠
官方 apt 仓库做了三件事:自动绑定兼容的 JDK(当前 stable 分支默认用 jdk11)、校验 glibc 版本、把二进制和配置路径统一管理。而手动运行 bazel-*.sh 脚本时:
- 它默认尝试写入
/usr/local/bin,但没检查你是否有权限; - 它不处理
JAVA_HOME自动适配,容易和系统已装的 OpenJDK 冲突; - 它生成的
~/.bazelrc可能含无效 startup 选项,导致bazel version直接退出; - 新版 Bazel(6.4.0+)已弃用 jdk1.8 支持,但很多老教程还在推
jdk1.8源地址,会装出无法启动的残缺版本。
用 apt 安装的完整命令链(必须按顺序执行)
以下命令适用于 Ubuntu 20.04 及更新版本、Debian 11+:
sudo apt install curl gnupg ca-certificates
curl -fsSL https://bazel.build/bazel-release.pub.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/bazel.gpg
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk11" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update && sudo apt install bazel
注意:jdk11 是当前 stable 分支唯一支持的 JDK 标签,jdk1.8 已失效;如果你用的是 Arm64 机器(如树莓派或 Apple Silicon Linux 虚拟机),APT 源不提供包,得换 bazelisk 或源码编译。
装完必须立刻检查的三件事
安装成功 ≠ 能用。很多构建失败其实卡在这几步:
- 运行
echo $JAVA_HOME,确认输出是类似/usr/lib/jvm/java-11-openjdk-amd64的路径,而不是你自己解压的 JDK; - 检查
~/.bazelrc是否为空或只含注释行,某些 VS Code 插件会偷偷写入startup --host_jvm_args=...这类破坏性配置; - 首次运行前先执行
bazel clean --expunge,否则旧缓存里的external/local_jdk符号链接可能指向错误 JDK 版本,导致bazel query //...返回空或Permission denied。
真正卡住人的从来不是安装命令本身,而是 JAVA_HOME 绑定错、.bazelrc 被污染、或者 workspace 根目录没识别准——这些都得靠 bazel info release 和 bazel clean --expunge 交叉验证,不能光看 bazel --version 返回了数字就以为万事大吉。










