En esta página, se describe cómo instalar Bazel desde la fuente y se proporcionan sugerencias para solucionar problemas comunes.
Para compilar Bazel desde la fuente, puedes hacer una de las siguientes acciones:
Compila sin un objeto binario de Bazel existente, lo que se conoce como inicio automático.
Compila Bazel con Bazel
Resumen
Obtén la versión más reciente de Bazel en la página de lanzamientos de GitHub o con Bazelisk.
Descarga las fuentes de Bazel desde GitHub y extráelas en algún lugar. Como alternativa, puedes clonar el árbol de origen de https://github.com/bazelbuild/bazel con git.
Instala los mismos requisitos previos que para el inicio automático (consulta para sistemas similares a Unix o para Windows).
Compila una compilación de desarrollo de Bazel con Bazel:
bazel build //src:bazel-dev
(obazel build //src:bazel-dev.exe
en Windows).El binario resultante está en
bazel-bin/src/bazel-dev
(obazel-bin\src\bazel-dev.exe
en Windows). Puedes copiarlo donde quieras y usarlo de inmediato sin necesidad de instalarlo.
A continuación, se incluyen instrucciones detalladas.
Paso 1: Obtén la versión más reciente de Bazel
Objetivo: Instala o descarga una versión de lanzamiento de Bazel. Para asegurarte de poder ejecutarlo, escribe bazel
en una terminal.
Motivo: Para compilar Bazel a partir de un árbol de fuentes de GitHub, necesitas un objeto binario de Bazel preexistente. Puedes instalar uno desde un administrador de paquetes o descargar uno desde GitHub. Consulta Cómo instalar Bazel. (O bien puedes compilar desde cero (arranque)).
Solución de problemas:
Si no puedes ejecutar Bazel escribiendo
bazel
en una terminal, haz lo siguiente:Es posible que el directorio del archivo binario de Bazel no esté en la PATH.
Esto no es un gran problema. En lugar de escribir
bazel
, deberás escribir la ruta de acceso completa.Es posible que el binario de Bazel no se llame
bazel
(en Unix) obazel.exe
(en Windows).Esto no es un gran problema. Puedes cambiar el nombre del objeto binario o escribir su nombre en lugar de
bazel
.Es posible que el objeto binario no sea ejecutable (en Unix).
Ejecuta
chmod +x /path/to/bazel
para que el objeto binario sea ejecutable.
Paso 2: Descarga las fuentes de Bazel desde GitHub
Si conoces Git, simplemente ejecuta git clone https://github.com/bazelbuild/bazel.
En caso contrario:
Descarga las fuentes más recientes como un archivo ZIP.
Extrae el contenido en algún lugar.
Por ejemplo, crea un directorio
bazel-src
en tu directorio principal y extráelo allí.
Paso 3: Instala los requisitos previos
Instala los mismos requisitos previos que para el inicio automático (consulta a continuación): JDK, compilador de C++, MSYS2 (si compilas en Windows), etcétera.
Paso 4a: Compila Bazel en Ubuntu Linux, macOS y otros sistemas similares a Unix
Para obtener instrucciones para Windows, consulta Cómo compilar Bazel en Windows.
Objetivo: Ejecuta Bazel para compilar un objeto binario de Bazel personalizado (bazel-bin/src/bazel-dev
).
Instrucciones:
Cómo iniciar una terminal de Bash
cd
en el directorio en el que extrajiste (o clonaste) las fuentes de Bazel.Por ejemplo, si extrajiste las fuentes en tu directorio personal, ejecuta lo siguiente:
cd ~/bazel-src
Compila Bazel desde la fuente:
bazel build //src:bazel-dev
Como alternativa, puedes ejecutar
bazel build //src:bazel --compilation_mode=opt
para obtener un binario más pequeño, pero la compilación es más lenta.Puedes compilar con la marca
--stamp --embed_label=X.Y.Z
para incorporar una versión de Bazel para el binario, de modo quebazel --version
genere la versión determinada.El resultado estará en
bazel-bin/src/bazel-dev
(obazel-bin/src/bazel
).
Paso 4b: Compila Bazel en Windows
Para obtener instrucciones sobre sistemas similares a Unix, consulta Ubuntu Linux, macOS y otros sistemas similares a Unix.
Objetivo: Ejecuta Bazel para compilar un objeto binario de Bazel personalizado (bazel-bin\src\bazel-dev.exe
).
Instrucciones:
Inicia el símbolo del sistema (menú Inicio > Ejecutar > "cmd.exe").
cd
en el directorio en el que extrajiste (o clonaste) las fuentes de Bazel.Por ejemplo, si extrajiste las fuentes en tu directorio personal, ejecuta lo siguiente:
cd %USERPROFILE%\bazel-src
Compila Bazel desde la fuente:
bazel build //src:bazel-dev.exe
Como alternativa, puedes ejecutar
bazel build //src:bazel.exe --compilation_mode=opt
para obtener un binario más pequeño, pero la compilación es más lenta.Puedes compilar con la marca
--stamp --embed_label=X.Y.Z
para incorporar una versión de Bazel para el binario, de modo quebazel --version
genere la versión determinada.El resultado estará en
bazel-bin\src\bazel-dev.exe
(obazel-bin\src\bazel.exe
).
Paso 5: Instala el objeto binario compilado
En realidad, no hay nada que instalar.
El resultado del paso anterior es un binario de Bazel independiente. Puedes copiarlo en cualquier directorio y usarlo de inmediato. (Es útil si ese directorio está en tu PATH para que puedas ejecutar "bazel" en cualquier lugar).
Compila Bazel desde cero (autoinicialización)
También puedes compilar Bazel desde cero, sin usar un objeto binario de Bazel existente.
Paso 1: Descarga las fuentes de Bazel (archivo de distribución)
(este paso es el mismo para todas las plataformas).
Descarga
bazel-<version>-dist.zip
desde GitHub, por ejemplo,bazel-0.28.1-dist.zip
.Atención:
- Hay un archivo de distribución único, independiente de la arquitectura. No hay archivos de distribución específicos de la arquitectura ni del SO.
- Estas fuentes no son iguales que el árbol de fuentes de GitHub. Debes usar el archivo de distribución para iniciar Bazel. No puedes usar un árbol de origen clonado desde GitHub. (El archivo de distribución contiene archivos de origen generados que son necesarios para el inicio y no forman parte del árbol de origen normal de Git).
Descomprime el archivo de distribución en algún lugar del disco.
Debes verificar la firma que hizo la clave de lanzamiento 3D5919B448457EE0 de Bazel.
Paso 2a: Inicia Bazel en Ubuntu Linux, macOS y otros sistemas similares a Unix
Para obtener instrucciones para Windows, consulta Cómo iniciar Bazel en Windows.
2.1. Instala los requisitos previos
Bash
zip, unzip
Cadena de herramientas de compilación de C++
JDK. Se requiere la versión 21.
Python. Se admiten las versiones 2 y 3, y es suficiente con instalar una de ellas.
Por ejemplo, en Ubuntu Linux, puedes instalar estos requisitos con el siguiente comando:
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Cómo iniciar Bazel en Unix
Abre una ventana de shell o de Terminal.
cd
al directorio en el que descomprimiste el archivo de distribución.Ejecuta la secuencia de comandos de compilación:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh
.
El resultado compilado se coloca en output/bazel
. Este es un objeto binario de Bazel independiente, sin un JDK incorporado. Puedes copiarlo en cualquier lugar o usarlo en su lugar. Para mayor comodidad, copia este objeto binario en un directorio que esté en tu PATH
(como /usr/local/bin
en Linux).
Para compilar el objeto binario bazel
de forma reproducible, también establece SOURCE_DATE_EPOCH
en el paso "Ejecuta la secuencia de comandos de compilación".
Paso 2b: Inicia Bazel en Windows
Para obtener instrucciones sobre sistemas similares a Unix, consulta Cómo iniciar Bazel en Ubuntu Linux, macOS y otros sistemas similares a Unix.
2.1. Instala los requisitos previos
Los paquetes de MSYS2 para zip y unzip. Ejecuta el siguiente comando en la shell de MSYS2:
pacman -S zip unzip patch
El compilador de Visual C++. Instala el compilador de Visual C++ como parte de Visual Studio 2015 o versiones posteriores, o instala las herramientas de compilación más recientes para Visual Studio 2017.
JDK. Se requiere la versión 21.
Python. Se admiten las versiones 2 y 3, y es suficiente con instalar una de ellas. Necesitas la versión nativa de Windows (se puede descargar desde https://www.python.org). Las versiones instaladas a través de pacman en MSYS2 no funcionarán.
2.2. Cómo iniciar Bazel en Windows
Abre la shell de MSYS2.
Configura las siguientes variables de entorno:
BAZEL_VS
oBAZEL_VC
(no son lo mismo): Establece la ruta de acceso al directorio de Visual Studio (BAZEL_VS) o al directorio de Visual C++ (BAZEL_VC). Con configurar uno de ellos es suficiente.BAZEL_SH
: Es la ruta de acceso debash.exe
de MSYS2. Consulta el comando en los ejemplos que aparecen a continuación.No configures esto como
C:\Windows\System32\bash.exe
. (Tienes ese archivo si instalaste el Subsistema de Windows para Linux). Bazel no es compatible con esta versión debash.exe
.PATH
: Agrega el directorio de Python.JAVA_HOME
: Se establece en el directorio JDK.
Ejemplo (con 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"
o (con 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
al directorio en el que descomprimiste el archivo de distribución.Ejecuta la secuencia de comandos de compilación:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
El resultado compilado se coloca en output/bazel.exe
. Este es un objeto binario de Bazel independiente, sin un JDK incorporado. Puedes copiarlo en cualquier lugar o usarlo en su lugar. Para mayor comodidad, copia este objeto binario en un directorio que se encuentre en tu PATH
.
Para compilar el objeto binario bazel.exe
de forma reproducible, también establece SOURCE_DATE_EPOCH
en el paso "Ejecuta la secuencia de comandos de compilación".
No es necesario que ejecutes Bazel desde la shell de MSYS2. Puedes ejecutar Bazel desde el símbolo del sistema (cmd.exe
) o PowerShell.