Esta página descreve como instalar o Bazel da origem e oferece dicas para solucionar problemas comuns.
Para criar o Bazel da origem, faça uma destas ações:
- Crie-o sem um binário do Bazel, o que é conhecido como bootstrap. 
Criar o Bazel usando o Bazel
Resumo
- Acesse a versão mais recente do Bazel na página de lançamento do GitHub ou com o Bazelisk. 
- Faça o download das fontes do Bazel no GitHub e extraia em algum lugar. Como alternativa, é possível clonar a árvore de origem de https://github.com/bazelbuild/bazel 
- Instale os mesmos pré-requisitos do bootstrapping (consulte para sistemas semelhantes ao Unix ou para Windows) 
- Crie um build de desenvolvimento do Bazel usando o Bazel: - bazel build //src:bazel-dev(ou- bazel build //src:bazel-dev.exeno Windows)
- O binário resultante está em - bazel-bin/src/bazel-dev(ou- bazel-bin\src\bazel-dev.exeno Windows). Você pode copiar e colar em qualquer lugar e usar imediatamente sem precisar instalar nada.
Confira abaixo as instruções detalhadas.
Etapa 1: usar a versão mais recente do Bazel
Objetivo: instalar ou baixar uma versão de lançamento do Bazel. Verifique se você pode executar
o comando digitando bazel em um terminal.
Motivo: para criar o Bazel em uma árvore de origem do GitHub, você precisa de um binário do Bazel pré-existente. É possível instalar um gerenciador de pacotes ou fazer o download de um no GitHub. Consulte Como instalar o Bazel. Ou criar do zero (bootstrap).
Solução de problemas:
- Se não for possível executar o Bazel digitando - bazelem um terminal:- Talvez o diretório do seu binário do Bazel não esteja no PATH. - Isso não é um grande problema. Em vez de digitar - bazel, digite o caminho completo.
- Talvez o próprio binário do Bazel não seja chamado de - bazel(em Unix) ou- bazel.exe(no Windows).- Isso não é um grande problema. Você pode renomear o binário ou digitar o nome dele em vez de - bazel.
- Talvez o binário não seja executável (em Unix). - Execute - chmod +x /path/to/bazelpara tornar o binário executável.
 
Etapa 2: fazer o download das fontes do Bazel no GitHub
Se você conhece o Git, basta executar git clone https://github.com/bazelbuild/bazel
Se esse não for seu caso, faça o seguinte:
- Faça o download das origens mais recentes como um arquivo ZIP. 
- Extraia o conteúdo em algum lugar. - Por exemplo, crie um diretório - bazel-srcno diretório principal e extraia os arquivos nele.
Etapa 3: instalar pré-requisitos
Instale os mesmos pré-requisitos do bootstrapping (veja abaixo): JDK, compilador C++, MSYS2 (se você estiver criando no Windows) etc.
Etapa 4a: criar o Bazel no Ubuntu Linux, macOS e outros sistemas semelhantes ao Unix
Para instruções no Windows, consulte Criar o Bazel no Windows.
Objetivo: executar o Bazel para criar um binário personalizado do Bazel (bazel-bin/src/bazel-dev).
Instruções
- Iniciar um terminal Bash 
- cdno diretório em que você extraiu (ou clonou) as fontes do Bazel.- Por exemplo, se você extraiu as fontes no diretório principal, execute: - cd ~/bazel-src
- Crie o Bazel da origem: - bazel build //src:bazel-dev- Outra opção é executar - bazel build //src:bazel --compilation_mode=optpara gerar um binário menor, mas o build é mais lento.- É possível criar com a flag - --stamp --embed_label=X.Y.Zpara incorporar uma versão do Bazel para o binário, de modo que- bazel --versiongere a versão especificada.
- A saída será - bazel-bin/src/bazel-dev(ou- bazel-bin/src/bazel).
Etapa 4b: criar o Bazel no Windows
Para instruções sobre sistemas semelhantes ao Unix, consulte Ubuntu Linux, macOS e outros sistemas semelhantes ao Unix.
Objetivo: executar o Bazel para criar um binário personalizado do Bazel
(bazel-bin\src\bazel-dev.exe).
Instruções
- Inicie o prompt de comando (menu Iniciar > Executar > "cmd.exe") 
- cdno diretório em que você extraiu (ou clonou) as fontes do Bazel.- Por exemplo, se você extraiu as fontes no diretório principal, execute: - cd %USERPROFILE%\bazel-src
- Crie o Bazel da origem: - bazel build //src:bazel-dev.exe - Outra opção é executar - bazel build //src:bazel.exe --compilation_mode=optpara gerar um binário menor, mas o build é mais lento.- É possível criar com a flag - --stamp --embed_label=X.Y.Zpara incorporar uma versão do Bazel para o binário, de modo que- bazel --versiongere a versão especificada.
- A saída será - bazel-bin\src\bazel-dev.exe(ou- bazel-bin\src\bazel.exe).
Etapa 5: instalar o binário criado
Na verdade, não é preciso instalar nada.
A saída da etapa anterior é um binário independente do Bazel. Você pode copiar para qualquer diretório e usar imediatamente. É útil se esse diretório estiver no PATH para que você possa executar "bazel" em qualquer lugar.
Criar o Bazel do zero (bootstrap)
Também é possível criar o Bazel do zero, sem usar um binário do Bazel.
Etapa 1: fazer o download das fontes do Bazel (arquivo de distribuição)
Essa etapa é igual para todas as plataformas.
- Faça o download de - bazel-<version>-dist.zipno GitHub, por exemplo,- bazel-0.28.1-dist.zip.- Atenção: - Há um único arquivo de distribuição independente da arquitetura. Não há arquivos de distribuição específicos para arquitetura ou SO.
- Essas fontes não são as mesmas que a árvore de origem do GitHub. Você precisa usar o arquivo de distribuição para fazer o bootstrap do Bazel. Não é possível usar uma árvore de origem clonada do GitHub. O arquivo de distribuição contém arquivos de origem gerados que são necessários para a inicialização e não fazem parte da árvore de origem normal do Git.
 
- Descompacte o arquivo de distribuição em algum lugar no disco. - Verifique a assinatura feita pela chave de lançamento 3D5919B448457EE0 do Bazel. 
Etapa 2a: inicializar o Bazel no Ubuntu Linux, macOS e outros sistemas semelhantes ao Unix
Para instruções no Windows, consulte Inicializar o Bazel no Windows.
2.1. Instalar os pré-requisitos
- Bash 
- zip, unzip 
- Cadeia de ferramentas de build do C++ 
- JDK. A versão 21 é obrigatória. 
- Python. As versões 2 e 3 são compatíveis, e basta instalar uma delas. 
Por exemplo, no Ubuntu Linux, é possível instalar esses requisitos usando o seguinte comando:
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Inicializar o Bazel no Unix
- Abra uma janela do shell ou do terminal. 
- cdpara o diretório em que você descompactou o arquivo de distribuição.
- Execute o script de compilação: - env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.
A saída compilada é colocada em output/bazel. Esse é um binário independente do Bazel, sem um JDK incorporado. Você pode copiar e colar em qualquer lugar ou usar no lugar. Para facilitar, copie esse binário para um diretório no seu
PATH, como /usr/local/bin no Linux.
Para criar o binário bazel de maneira reproduzível, defina também
SOURCE_DATE_EPOCH
na etapa "Executar o script de compilação".
Etapa 2b: inicializar o Bazel no Windows
Para instruções sobre sistemas semelhantes ao Unix, consulte Inicializar o Bazel no Ubuntu Linux, macOS e outros sistemas semelhantes ao Unix.
2.1. Instalar os pré-requisitos
- Os pacotes MSYS2 para zip e unzip. Execute o comando a seguir no shell MSYS2: - pacman -S zip unzip patch
- O compilador do Visual C++. Instale o compilador Visual C++ como parte do Visual Studio 2015 ou mais recente ou instalando as Ferramentas de build para Visual Studio 2017 mais recentes. 
- JDK. A versão 21 é obrigatória. 
- Python. As versões 2 e 3 são compatíveis, e basta instalar uma delas. Você precisa da versão nativa do Windows, que pode ser baixada em https://www.python.org. As versões instaladas via pacman no MSYS2 não funcionam. 
2.2. Inicializar o Bazel no Windows
- Abra o shell do MSYS2. 
- Configure as variáveis de ambiente a seguir: - BAZEL_VSou- BAZEL_VC(não são iguais): defina o caminho para o diretório do Visual Studio (BAZEL_VS) ou para o diretório do Visual C++ (BAZEL_VC). Basta definir um deles.
- BAZEL_SH: caminho do- bash.exedo MSYS2. Confira o comando nos exemplos abaixo.- Não defina como - C:\Windows\System32\bash.exe. Você tem esse arquivo se instalou o subsistema Windows para Linux. O Bazel não é compatível com esta versão do- bash.exe.
- PATH: adicione o diretório do Python.
- JAVA_HOME: defina como o diretório do JDK.
 - Exemplo (usando 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"- ou (usando 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"
- cdpara o diretório em que você descompactou o arquivo de distribuição.
- Execute o script de compilação: - env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
A saída compilada é colocada em output/bazel.exe. Esse é um binário independente do Bazel, sem um JDK incorporado. Você pode copiar e colar em qualquer lugar ou usar no lugar. Para facilitar, copie esse binário para um diretório no
seu PATH.
Para criar o binário bazel.exe de maneira reproduzível, defina também
SOURCE_DATE_EPOCH
na etapa "Executar o script de compilação".
Não é necessário executar o Bazel no shell do MSYS2. É possível executar o Bazel no
prompt de comando (cmd.exe) ou no PowerShell.