Esta página descreve como instalar o Bazel na origem e oferece dicas para resolver problemas comuns.
Para criar o Bazel a partir da origem, faça o seguinte:
Crie-o sem um binário do Bazel, que é conhecido como inicialização.
Criar o Bazel usando o Bazel
Resumo
Confira a versão mais recente do Bazel na página de lançamentos do GitHub ou com o Bazelisk.
Faça o download das origens do Bazel no GitHub e extraia em algum lugar. Como alternativa, é possível clonar a árvore de origem em https://github.com/bazelbuild/bazel.
Instale os mesmos pré-requisitos do bootstrapping (consulte para sistemas semelhantes ao Unix ou para Windows).
Criar um build de desenvolvimento do Bazel usando o Bazel:
bazel build //src:bazel-dev
(oubazel build //src:bazel-dev.exe
no Windows)O binário resultante está em
bazel-bin/src/bazel-dev
(oubazel-bin\src\bazel-dev.exe
no Windows). Você pode copiar o arquivo onde quiser e usá-lo imediatamente sem precisar instalar nada.
Confira abaixo as instruções detalhadas.
Etapa 1: instalar a versão mais recente do Bazel
Meta: instalar ou fazer o download de uma versão de lançamento do Bazel. Para verificar se ele está funcionando,
digite bazel
em um terminal.
Motivo: para criar o Bazel em uma árvore de origem do GitHub, é necessário um binário do Bazel preexistente. É possível instalar um usando um gerenciador de pacotes ou fazer o download em GitHub. Consulte Como instalar o Bazel. Ou você pode criar do zero (bootstrap).
Solução de problemas:
Se não for possível executar o Bazel digitando
bazel
em um terminal:Talvez o diretório do binário do Bazel não esteja no PATH.
Isso não é um grande problema. Em vez de digitar
bazel
, você vai precisar digitar o caminho completo.Talvez o binário do Bazel não seja chamado de
bazel
(no Unix) oubazel.exe
(no Windows).Isso não é um grande problema. É possível renomear o binário ou digitar o nome do binário em vez de
bazel
.Talvez o binário não seja executável (em Unixes).
Execute
chmod +x /path/to/bazel
para tornar o binário executável.
Etapa 2: fazer o download das origens do Bazel no GitHub
Se você já conhece o Git, basta usar git clone https://github.com/bazelbuild/bazel
Se esse não for seu caso, faça o seguinte:
Faça o download das fontes mais recentes como um arquivo ZIP.
Extraia o conteúdo em algum lugar.
Por exemplo, crie um diretório
bazel-src
no diretório principal e extraia nele.
Etapa 3: instalar os pré-requisitos
Instale os mesmos pré-requisitos para inicialização (consulte 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 sobre o Windows, consulte Criar o Bazel no Windows.
Meta: executar o Bazel para criar um binário personalizado do Bazel (bazel-bin/src/bazel-dev
).
Instruções
Iniciar um terminal Bash
cd
no diretório em que você extraiu (ou clonou) as origens do Bazel.Por exemplo, se você extraiu as fontes no diretório principal, execute:
cd ~/bazel-src
Crie o Bazel da fonte:
bazel build //src:bazel-dev
Como alternativa, você pode executar
bazel build //src:bazel --compilation_mode=opt
para gerar um binário menor, mas o build é mais lento.É possível criar com a flag
--stamp --embed_label=X.Y.Z
para incorporar uma versão do Bazel para o binário, de modo quebazel --version
gere a versão especificada.A saída será
bazel-bin/src/bazel-dev
(oubazel-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.
Meta: executar o Bazel para criar um binário personalizado
(bazel-bin\src\bazel-dev.exe
).
Instruções
Inicie o prompt de comando (Menu "Iniciar" > "Executar" > "cmd.exe").
cd
no diretório em que você extraiu (ou clonou) as origens do Bazel.Por exemplo, se você extraiu as fontes no diretório principal, execute:
cd %USERPROFILE%\bazel-src
Crie o Bazel da fonte:
bazel build //src:bazel-dev.exe
Como alternativa, você pode executar
bazel build //src:bazel.exe --compilation_mode=opt
para gerar um binário menor, mas o build é mais lento.É possível criar com a flag
--stamp --embed_label=X.Y.Z
para incorporar uma versão do Bazel para o binário, para quebazel --version
gere a versão especificada.A saída será
bazel-bin\src\bazel-dev.exe
(oubazel-bin\src\bazel.exe
).
Etapa 5: instalar o binário criado
Na verdade, não há nada para instalar.
A saída da etapa anterior é um binário do Bazel independente. Você pode copiá-lo para qualquer diretório e usá-lo imediatamente. É útil se esse diretório estiver no PATH para que você possa executar "bazel" em qualquer lugar.
Criar o Bazel do zero (inicialização)
Também é possível criar o Bazel do zero, sem usar um binário do Bazel existente.
Etapa 1: fazer o download das origens do Bazel (arquivo de distribuição)
Essa etapa é a mesma para todas as plataformas.
Faça o download de
bazel-<version>-dist.zip
no GitHub, por exemplo,bazel-0.28.1-dist.zip
.Atenção:
- Há um arquivo de distribuição único e independente da arquitetura. Não há arquivos de distribuição específicos para arquitetura ou SO.
- Essas origens não são iguais à árvore de origem do GitHub. Você precisa usar o arquivo de distribuição para inicializar o 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 inicialização e não fazem parte da árvore de origem normal do Git.
Descompacte o arquivo de distribuição em algum lugar do 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 sobre o Windows, consulte Inicializar o Bazel no Windows.
2.1. Instalar os pré-requisitos
Bash
zip, unzip
Kit de ferramentas de build do C++
JDK. A versão 21 é obrigatória.
Python. As versões 2 e 3 têm suporte. Instalar uma delas é suficiente.
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. Inicialização do Bazel no Unix
Abra uma janela do shell ou do Terminal.
cd
para 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
. Este é um binário
Bazel independente, sem um JDK incorporado. Você pode copiar o conteúdo para qualquer lugar ou usá-lo
no local. Para facilitar, copie esse binário para um diretório que esteja no
PATH
(como /usr/local/bin
no Linux).
Para criar o binário bazel
de uma 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 Inicialização do Bazel no Ubuntu Linux, macOS e outros sistemas semelhantes ao Unix.
2.1. Instalar os pré-requisitos
Os pacotes MSYS2 para compactar e descompactar. Execute o comando a seguir no shell MSYS2:
pacman -S zip unzip patch
O compilador do Visual C++. Instale o compilador do 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 a instalação de uma delas é suficiente. Você precisa da versão nativa do Windows (disponível para download em https://www.python.org). As versões instaladas pelo pacman no MSYS2 não vão funcionar.
2.2. Inicialização do Bazel no Windows
Abra o shell MSYS2.
Configure as variáveis de ambiente a seguir:
BAZEL_VS
ouBAZEL_VC
(não são iguais): defina o caminho para o diretório do Visual Studio (BAZEL_VS) ou para o diretório do C++ (BAZEL_VC). Basta definir um deles.BAZEL_SH
: caminho dobash.exe
MSYS2. Confira o comando nos exemplos abaixo.Não defina como
C:\Windows\System32\bash.exe
. Você terá esse arquivo se tiver instalado o Subsistema do Windows para Linux. O Bazel não oferece suporte a essa versão dobash.exe
.PATH
: adicione o diretório Python.JAVA_HOME
: definido como o diretório 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"
cd
para 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
. Este é um binário
Bazel independente, sem um JDK incorporado. Você pode copiar o conteúdo para qualquer lugar ou usá-lo
no local. Para facilitar, copie esse binário para um diretório que esteja no
PATH
.
Para criar o binário bazel.exe
de uma 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 MSYS2. É possível executar o Bazel no
prompt de comando (cmd.exe
) ou no PowerShell.