이 페이지에서는 소스에서 Bazel을 설치하는 방법을 설명하고 일반적인 문제에 관한 문제 해결 도움말을 제공합니다.
소스에서 Bazel을 빌드하려면 다음 중 하나를 실행하면 됩니다.
기존 Bazel 바이너리 없이 빌드( 부트스트래핑이라고 함)
Bazel을 사용하여 Bazel 빌드
요약
GitHub 출시 페이지 또는Bazelisk에서 최신 Bazel 출시 버전을 가져옵니다.
GitHub에서 Bazel의 소스를 다운로드 하고 어딘가에 압축을 풉니다. 또는 https://github.com/bazelbuild/bazel에서 소스 트리를 git clone할 수 있습니다.
부트스트래핑과 동일한 기본 요건을 설치합니다 (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을 실행하면 됩니다.
그 이외의 경우
3단계: 기본 요건 설치
부트스트래핑과 동일한 기본 요건 (아래 참고)을 설치합니다. JDK, C++ 컴파일러, MSYS2 (Windows에서 빌드하는 경우) 등
4a단계: Ubuntu Linux, macOS, 기타 Unix 계열 시스템에서 Bazel 빌드
Windows 관련 안내는 Windows에서 Bazel 빌드를 참고하세요.
목표: Bazel을 실행하여 커스텀 Bazel 바이너리 (bazel-bin/src/bazel-dev)를 빌드합니다.
안내:
Bash 터미널을 시작합니다.
cdBazel의 소스를 압축 풀거나 클론한 디렉터리로 이동합니다.예를 들어 홈 디렉터리 아래에 소스를 압축 푼 경우 다음을 실행합니다.
cd ~/bazel-src소스에서 Bazel을 빌드합니다.
bazel build //src:bazel-dev또는
bazel build //src:bazel --compilation_mode=opt를 실행하여 더 작은 바이너리를 생성할 수 있지만 빌드 속도가 느립니다.--stamp --embed_label=X.Y.Z플래그를 사용하여 바이너리의 Bazel 버전을 삽입하여bazel --version이 지정된 버전을 출력하도록 빌드할 수 있습니다.출력은
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').
cdBazel의 소스를 압축 풀거나 클론한 디렉터리로 이동합니다.예를 들어 홈 디렉터리 아래에 소스를 압축 푼 경우 다음을 실행합니다.
cd %USERPROFILE%\bazel-src소스에서 Bazel을 빌드합니다.
bazel build //src:bazel-dev.exe
또는
bazel build //src:bazel.exe --compilation_mode=opt를 실행하여 더 작은 바이너리를 생성할 수 있지만 빌드 속도가 느립니다.--stamp --embed_label=X.Y.Z플래그를 사용하여 바이너리의 Bazel 버전을 삽입하여bazel --version이 지정된 버전을 출력하도록 빌드할 수 있습니다.출력은
bazel-bin\src\bazel-dev.exe에 있습니다 (또는bazel-bin\src\bazel.exe).
5단계: 빌드된 바이너리 설치
실제로 설치할 것은 없습니다.
이전 단계의 출력은 자체 포함 Bazel 바이너리입니다. 모든 디렉터리에 복사하고 즉시 사용할 수 있습니다. (이 디렉터리가 PATH에 있으면 어디서나 'bazel'을 실행할 수 있으므로 유용합니다.)
처음부터 Bazel 빌드 (부트스트래핑)
기존 Bazel 바이너리를 사용하지 않고 처음부터 Bazel을 빌드할 수도 있습니다.
1단계: Bazel의 소스 (배포 아카이브) 다운로드
(이 단계는 모든 플랫폼에서 동일합니다.)
-
주의:
- 단일의 아키텍처 독립적인 배포 아카이브가 있습니다. 아키텍처별 또는 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에 있는 디렉터리 (예: /usr/local/bin on Linux)에 복사합니다.
재현 가능한 방식으로 bazel 바이너리를 빌드하려면 '컴파일 스크립트 실행' 단계에서
SOURCE_DATE_EPOCH
도 설정합니다.
2b단계: Windows에서 Bazel 부트스트래핑
Unix 계열 시스템 관련 안내는 Ubuntu Linux, macOS, 기타 Unix 계열 시스템에서 Bazel 부트스트래핑을 참고하세요.
2.1. 기본 요건 설치
zip 및 unzip용 MSYS2 패키지. MSYS2 셸에서 다음 명령어를 실행합니다.
pacman -S zip unzip patchVisual C++ 컴파일러. Visual Studio 2015 이상에 포함된 Visual C++ 컴파일러를 설치하거나 최신 Build Tools for 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: MSYS2bash.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`에 있는 디렉터리에 복사합니다PATH.
재현 가능한 방식으로 bazel.exe 바이너리를 빌드하려면 '컴파일 스크립트 실행' 단계에서
SOURCE_DATE_EPOCH
도 설정합니다.
MSYS2 셸에서 Bazel을 실행할 필요는 없습니다. 명령 프롬프트 (cmd.exe) 또는 PowerShell에서 Bazel을 실행할 수 있습니다.