이 페이지에서는 소스에서 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 바이너리 자체가 Unix에서
bazel
또는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, 기타 유닉스 계열 시스템에서 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, 기타 유닉스 계열 시스템에서 Bazel 부트스트랩
Windows용 안내는 Windows의 Bazel 부트스트랩을 참고하세요.
2.1. 기본 요건 설치
Bash
zip, 압축 해제
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. 기본 요건 설치
압축 및 압축 해제를 위한 MSYS2 패키지 MSYS2 셸에서 다음 명령어를 실행합니다.
pacman -S zip unzip patch
Visual C++ 컴파일러 Visual C++ 컴파일러를 Visual Studio 2015 이상 버전의 일부로 설치하거나 최신 Visual Studio 2017용 빌드 도구를 설치합니다.
JDK. 버전 21이 필요합니다.
Python. 버전 2와 3이 지원되므로 버전 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
에 있는 디렉터리에 복사합니다.
bazel.exe
바이너리를 재현 가능한 방식으로 빌드하려면 '컴파일 스크립트 실행' 단계에서 SOURCE_DATE_EPOCH
도 설정하세요.
MSYS2 셸에서 Bazel을 실행할 필요가 없습니다. 명령 프롬프트 (cmd.exe
) 또는 PowerShell에서 Bazel을 실행할 수 있습니다.