이 페이지에서는 소스에서 Bazel을 설치하는 방법을 설명하고 일반적인 문제에 대한 문제 해결 팁을 제공합니다.
소스에서 Bazel을 빌드하려면 다음 중 하나를 실행하면 됩니다.
- 부트스트랩이라고 하는 기존 Bazel 바이너리 없이 빌드합니다. 
Bazel을 사용하여 Bazel 빌드
요약
- GitHub 출시 페이지 또는 Bazelisk에서 최신 Bazel 버전을 가져옵니다. 
- GitHub에서 Bazel 소스를 다운로드하고 원하는 위치에 추출합니다. 또는 https://github.com/bazelbuild/bazel에서 소스 트리를 git 클론할 수 있습니다. 
- 부트스트랩과 동일한 기본 요건을 설치합니다 (Unix 계열 시스템 또는 Windows 참고). 
- Bazel을 사용하여 Bazel의 개발 빌드를 빌드합니다. - bazel build //src:bazel-dev(Windows에서는- bazel build //src:bazel-dev.exe)
- 결과 바이너리는 - bazel-bin/src/bazel-dev(Windows의 경우- bazel-bin\src\bazel-dev.exe)에 있습니다. 원하는 곳에 복사하여 추가 설치 없이 즉시 사용할 수 있습니다.
자세한 안내는 다음과 같습니다.
1단계: 최신 Bazel 출시 버전 가져오기
목표: Bazel 출시 버전을 설치하거나 다운로드합니다. 터미널에 bazel을 입력하여 실행할 수 있는지 확인합니다.
이유: GitHub 소스 트리에서 Bazel을 빌드하려면 기존 Bazel 바이너리가 필요합니다. 패키지 관리자에서 설치하거나 GitHub에서 다운로드할 수 있습니다. Bazel 설치를 참고하세요. (또는 처음부터 빌드 (부트스트랩)할 수 있습니다.)
문제해결:
- 터미널에 - bazel를 입력하여 Bazel을 실행할 수 없는 경우 다음 단계를 따르세요.- Bazel 바이너리의 디렉터리가 PATH에 없을 수 있습니다. - 큰 문제는 아닙니다. - bazel를 입력하는 대신 전체 경로를 입력해야 합니다.
- Bazel 바이너리 자체가 - bazel(Unix의 경우) 또는- bazel.exe(Windows의 경우)이 아닐 수 있습니다.- 큰 문제는 아닙니다. 바이너리 이름을 바꾸거나 - bazel대신 바이너리 이름을 입력하면 됩니다.
- 바이너리가 실행 가능하지 않을 수 있습니다 (Unix의 경우). - chmod +x /path/to/bazel를 실행하여 바이너리를 실행 가능하게 만들어야 합니다.
 
2단계: GitHub에서 Bazel 소스 다운로드
Git에 익숙하다면 git clone https://github.com/bazelbuild/bazel을 실행하세요.
그 이외의 경우
- 최신 소스를 zip 파일로 다운로드합니다. 
- 콘텐츠를 어딘가에 추출합니다. - 예를 들어 홈 디렉터리 아래에 - bazel-src디렉터리를 만들고 여기에 압축을 풉니다.
3단계: 필수 패키지 설치
부트스트랩과 동일한 필수 구성요소 (아래 참고)를 설치합니다. JDK, C++ 컴파일러, MSYS2 (Windows에서 빌드하는 경우) 등이 있습니다.
4a단계: Ubuntu Linux, macOS, 기타 Unix 계열 시스템에서 Bazel 빌드
Windows의 경우 Windows에서 Bazel 빌드를 참고하세요.
목표: Bazel을 실행하여 맞춤 Bazel 바이너리 (bazel-bin/src/bazel-dev)를 빌드합니다.
안내:
- Bash 터미널 시작 
- Bazel 소스를 추출 (또는 클론)한 디렉터리로 - cd를 이동합니다.- 예를 들어 홈 디렉터리에 소스를 추출한 경우 다음을 실행합니다. - cd ~/bazel-src
- 소스에서 Bazel을 빌드합니다. - bazel build //src:bazel-dev- 또는 - bazel build //src:bazel --compilation_mode=opt를 실행하여 더 작은 바이너리를 생성할 수 있지만 빌드 속도가 느립니다.
- 출력은 - bazel-bin/src/bazel-dev(또는- bazel-bin/src/bazel)에 있습니다.
4b단계: Windows에서 Bazel 빌드
Unix 계열 시스템의 안내는 Ubuntu Linux, macOS, 기타 Unix 계열 시스템을 참고하세요.
목표: Bazel을 실행하여 맞춤 Bazel 바이너리(bazel-bin\src\bazel-dev.exe)를 빌드합니다.
안내:
- 명령 프롬프트 시작 (시작 메뉴 > 실행 > 'cmd.exe') 
- Bazel 소스를 추출 (또는 클론)한 디렉터리로 - cd를 이동합니다.- 예를 들어 홈 디렉터리에 소스를 추출한 경우 다음을 실행합니다. - cd %USERPROFILE%\bazel-src
- 소스에서 Bazel을 빌드합니다. - bazel build //src:bazel-dev.exe- 또는 - bazel build //src:bazel.exe --compilation_mode=opt를 실행하여 더 작은 바이너리를 생성할 수 있지만 빌드 속도가 느립니다.
- 출력은 - bazel-bin\src\bazel-dev.exe(또는- bazel-bin\src\bazel.exe)에 있습니다.
5단계: 빌드된 바이너리 설치
설치할 항목이 없습니다.
이전 단계의 출력은 자체 포함 Bazel 바이너리입니다. 어떤 디렉터리로든 복사하여 즉시 사용할 수 있습니다. (이 디렉터리가 PATH에 있으면 어디서나 'bazel'을 실행할 수 있으므로 유용합니다.)
처음부터 Bazel 빌드 (부트스트랩)
기존 Bazel 바이너리를 사용하지 않고 처음부터 Bazel을 빌드할 수도 있습니다.
1단계: Bazel 소스 (배포 보관 파일) 다운로드
(이 단계는 모든 플랫폼에서 동일합니다.)
- GitHub에서 - bazel-<version>-dist.zip을 다운로드합니다(예:- bazel-0.28.1-dist.zip).- 주의: - 단일 아키텍처 독립적 배포 보관 파일이 있습니다. 아키텍처별 또는 OS별 배포 보관 파일이 없습니다.
- 이러한 소스는 GitHub 소스 트리와 동일하지 않습니다. 배포 보관 파일을 사용하여 Bazel을 부트스트랩해야 합니다. GitHub에서 클론한 소스 트리는 사용할 수 없습니다. (배포 보관 파일에는 부트스트랩에 필요하고 일반 Git 소스 트리의 일부가 아닌 생성된 소스 파일이 포함되어 있습니다.)
 
- 디스크의 적절한 위치에 배포 보관 파일을 압축 해제합니다. - Bazel의 출시 키 3D5919B448457EE0으로 만든 서명을 확인해야 합니다. 
2a단계: Ubuntu Linux, macOS 및 기타 Unix 계열 시스템에서 Bazel 부트스트랩
Windows의 경우 Windows에서 Bazel 부트스트랩을 참고하세요.
2.1. 기본 요건 설치
- Bash 
- zip, unzip 
- C++ 빌드 도구 모음 
- JDK 버전 21이 필요합니다. 
- Python. 버전 2와 3이 지원되며, 둘 중 하나만 설치하면 됩니다. 
예를 들어 Ubuntu Linux에서는 다음 명령어를 사용하여 이러한 요구사항을 설치할 수 있습니다.
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Unix에서 Bazel 부트스트랩
- 셸 또는 터미널 창을 엽니다. 
- cd를 배포 보관 파일을 압축 해제한 디렉터리로 이동합니다.
- 컴파일 스크립트( - env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh)를 실행합니다.
컴파일된 출력은 output/bazel에 배치됩니다. 내장 JDK가 없는 자체 포함 Bazel 바이너리입니다. 어디에나 복사하거나 제자리에서 사용할 수 있습니다. 편의를 위해 이 바이너리를 PATH에 있는 디렉터리 (예: Linux의 /usr/local/bin)에 복사합니다.
재현 가능한 방식으로 bazel 바이너리를 빌드하려면 '컴파일 스크립트 실행' 단계에서 SOURCE_DATE_EPOCH도 설정하세요.
2b단계: Windows에서 Bazel 부트스트랩
Unix 계열 시스템의 안내는 Ubuntu Linux, macOS 및 기타 Unix 계열 시스템에서 Bazel 부트스트랩을 참고하세요.
2.1. 기본 요건 설치
- zip 및 unzip용 MSYS2 패키지 MSYS2 셸에서 다음 명령어를 실행합니다. - pacman -S zip unzip patch
- Visual C++ 컴파일러 Visual Studio 2015 이상의 일부로 Visual C++ 컴파일러를 설치하거나 최신 Visual Studio 2017용 빌드 도구를 설치합니다. 
- JDK 버전 21이 필요합니다. 
- Python. 버전 2와 3이 지원되며, 둘 중 하나만 설치하면 됩니다. Windows 네이티브 버전이 필요합니다 (https://www.python.org에서 다운로드 가능). MSYS2의 pacman을 통해 설치된 버전은 작동하지 않습니다. 
2.2. Windows에서 Bazel 부트스트랩
- MSYS2 셸을 엽니다. 
- 다음 환경 변수를 설정합니다. - BAZEL_VS또는- BAZEL_VC(같지 않음): Visual Studio 디렉터리 (BAZEL_VS) 또는 Visual C++ 디렉터리 (BAZEL_VC)의 경로로 설정합니다. 둘 중 하나만 설정하면 됩니다.
- BAZEL_SH: MSYS2- bash.exe의 경로입니다. 아래 예시의 명령어를 참고하세요.- C:\Windows\System32\bash.exe로 설정하지 마세요. (Linux용 Windows 하위 시스템을 설치한 경우 이 파일이 있습니다.) Bazel은 이 버전의- bash.exe을 지원하지 않습니다.
- PATH: Python 디렉터리를 추가합니다.
- JAVA_HOME: JDK 디렉터리로 설정합니다.
 - 예 (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"- 또는 (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를 배포 보관 파일을 압축 해제한 디렉터리로 이동합니다.
- 컴파일 스크립트를 실행합니다. - env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
컴파일된 출력은 output/bazel.exe에 배치됩니다. 내장 JDK가 없는 자체 포함 Bazel 바이너리입니다. 어디에나 복사하거나 제자리에서 사용할 수 있습니다. 편의를 위해 이 바이너리를 PATH에 있는 디렉터리에 복사합니다.
재현 가능한 방식으로 bazel.exe 바이너리를 빌드하려면 '컴파일 스크립트 실행' 단계에서 SOURCE_DATE_EPOCH도 설정하세요.
MSYS2 셸에서 Bazel을 실행할 필요는 없습니다. 명령 프롬프트 (cmd.exe) 또는 PowerShell에서 Bazel을 실행할 수 있습니다.