En esta página, se describe cómo instalar Bazel desde la fuente y se proporciona sugerencias para solucionar problemas habituales.
Para compilar Bazel desde la fuente, puedes realizar una de las siguientes acciones:
Compilala con un objeto binario de Bazel existente.
Créala sin un objeto binario de Bazel existente, que se conoce como arranque.
Compila Bazel con Bazel
Resumen
Obtén la versión más reciente de Bazel desde la página de lanzamiento de GitHub Bazelisk.
Descarga las fuentes de Bazel desde GitHub. y extraerlos en algún lugar. Como alternativa, puedes clonar con git el árbol de fuentes desde https://github.com/bazelbuild/bazel
Instala los mismos requisitos previos que para el arranque (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 objeto 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: Instalar o descargar una versión de actualización de Bazel. Asegúrate de que puedes ejecutar
escribiendo bazel
en una terminal.
Motivo: Para compilar Bazel a partir de un árbol de fuentes de GitHub, necesitas un Objeto binario de Bazel. Puedes instalar uno desde un administrador de paquetes o descargar uno desde GitHub. Consulta Instala Bazel. (O puedes crear a partir de scratch (arranque)).
Solución de problemas:
Si no puedes ejecutar Bazel, escribe
bazel
en una terminal:Es posible que el directorio de tu objeto binario de Bazel no esté en la RUTA DE ACCESO.
Esto no es un gran problema. En lugar de escribir
bazel
, deberás escribe la ruta de acceso completa.Es posible que el objeto binario de Bazel no se llame
bazel
(en Unix).bazel.exe
(en Windows).Esto no es un gran problema. Puedes cambiar el nombre del objeto binario o escribir el nombre del objeto binario 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 estás familiarizado con Git, usa git clone https://github.com/bazelbuild/bazel
En caso contrario:
Descarga el Las fuentes más recientes como un archivo ZIP.
Extrae el contenido en alguna parte.
Por ejemplo, crea un directorio
bazel-src
en tu directorio principal. y extraerlos allí.
Paso 3: Instala los requisitos previos
Instala los mismos requisitos previos que para el arranque (consulta a continuación): JDK, C++ compilador, MSYS2 (si compilas en Windows), etcétera.
Paso 4a: Compila Bazel en Ubuntu Linux, macOS y otros sistemas similares a Unix
Si quieres obtener instrucciones para Windows, consulta Cómo compilar Bazel en Windows.
Objetivo: Ejecutar Bazel para compilar un objeto binario de Bazel personalizado (bazel-bin/src/bazel-dev
).
Instrucciones:
Inicia una terminal Bash
cd
al directorio en el que extrajiste (o clonaste) las fuentes de Bazel.Por ejemplo, si extrajiste las fuentes de tu directorio principal, ejecuta lo siguiente:
cd ~/bazel-src
Compila Bazel desde la fuente:
bazel build //src:bazel-dev
También puedes ejecutar
bazel build //src:bazel --compilation_mode=opt
para producir un objeto binario más pequeño, pero la compilación es más lenta.El resultado estará en
bazel-bin/src/bazel-dev
(obazel-bin/src/bazel
).
Paso 4b: Compila Bazel en Windows
Para obtener instrucciones para sistemas similares a Unix, consulta Ubuntu Linux, macOS y otros sistemas similares a Unix.
Objetivo: Ejecutar 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
al directorio en el que extrajiste (o clonaste) las fuentes de Bazel.Por ejemplo, si extrajiste las fuentes de tu directorio principal, 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 generar un objeto binario más pequeño, pero la compilación es más lenta.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 objeto binario de Bazel independiente. Puedes copiar en cualquier directorio y usarlo de inmediato. (es útil si el directorio está en tu RUTA DE ACCESO para poder ejecutar “bazel” everywhere.)
Cómo compilar Bazel desde cero (arranque)
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).
Descargar
bazel-<version>-dist.zip
de GitHub, por ejemplobazel-0.28.1-dist.zip
Atención:
- Hay un único archivo de distribución independiente de la arquitectura. No hay archivos de distribución específicos de la arquitectura ni del SO.
- Estas fuentes no son las mismas que el árbol de fuentes de GitHub. Tú debes usar el archivo de distribución para iniciar Bazel. No puedes usa un árbol de fuentes clonado desde GitHub. (El archivo de distribución contiene archivos de origen generados que son necesarios para el arranque y no son parte del árbol de fuentes de Git normal).
Descomprime el archivo de distribución en algún lugar del disco.
Debes verificar la firma de Bazel's clave de lanzamiento 3D5919B448457EE0.
Paso 2a: Inicia Bazel en Ubuntu Linux, macOS y otros sistemas similares a Unix
Si quieres obtener instrucciones para Windows, consulta Cómo iniciar Bazel en Windows.
2.1. Instala los requisitos previos
Bash
comprimir, descomprimir
Cadena de herramientas de compilación de C++
JDK. La versión 21 es obligatoria.
Python. Se admiten las versiones 2 y 3, por lo que instalar una de ellas es lo suficiente.
Por ejemplo, en Ubuntu Linux, puedes instalar estos requisitos usando el comando siguiente comando:
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Inicia Bazel en Unix
Abre un shell o una ventana de terminal.
cd
al directorio en el que desempaquetaste 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 proyecto de
Objeto binario de Bazel, sin un JDK incorporado. Puedes copiarlo en cualquier lugar o usarlo
locales. Para mayor comodidad, copia este objeto binario a un directorio que se encuentre en tu
PATH
(como /usr/local/bin
en Linux).
Para compilar el objeto binario bazel
de manera reproducible, también configura
SOURCE_DATE_EPOCH
en la sección "Ejecuta la secuencia de comandos de compilación" paso.
Paso 2b: Inicia Bazel en Windows
Para obtener instrucciones para sistemas similares a Unix, consulta Inicia Bazel en Ubuntu Linux, macOS y otros sistemas similares a Unix.
2.1. Instala los requisitos previos
Los paquetes de MSYS2 para comprimir y descomprimir 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 Visual Studio 2015 o posterior, o mediante la instalación de las herramientas de compilación más recientes para Visual Studio 2017.
JDK. La versión 21 es obligatoria.
Python. Se admiten las versiones 2 y 3, por lo que instalar una de ellas es lo suficiente. Necesitas la versión nativa de Windows (que se puede descargar desde https://www.python.org). Versiones instaladas a través de pacman en MSYS2 no funcionará.
2.2. Inicia Bazel en Windows
Abre la shell de MSYS2.
Configura las siguientes variables de entorno:
BAZEL_VS
oBAZEL_VC
(no son iguales): Configúralos como se indica a continuación: al directorio de Visual Studio (BAZEL_VS) o al directorio de Visual Studio Directorio de C++ (BAZEL_VC). Establecer uno de ellos es suficiente.BAZEL_SH
: Es la ruta de acceso delbash.exe
de MSYS2. Consulta el comando en la ejemplos 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 esta versión debash.exe
.PATH
: Agrega el directorio de Python.JAVA_HOME
: Se establece en el directorio de 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 desempaquetaste el archivo de distribuciónEjecuta 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 recurso
Objeto binario de Bazel, sin un JDK incorporado. Puedes copiarlo en cualquier lugar o usarlo
locales. Para mayor comodidad, copia este objeto binario a un directorio que esté en
tu PATH
.
Para compilar el objeto binario bazel.exe
de manera reproducible, configura también
SOURCE_DATE_EPOCH
en la sección "Ejecuta la secuencia de comandos de compilación" paso.
No es necesario que ejecutes Bazel desde la shell de MSYS2. Puedes ejecutar Bazel desde el
Símbolo del sistema (cmd.exe
) o PowerShell.