이 페이지에서는 소스에서 Bazel을 설치하는 방법을 설명하고 일반적인 문제에 대한 문제 해결 팁을 제공합니다.
소스에서 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
그 이외의 경우
어딘가의 콘텐츠를 추출합니다.
예를 들어 홈 디렉터리 아래에
bazel-src
디렉터리를 만들고 압축을 풉니다.
3단계: 기본 요건 설치하기
부트스트랩과 동일한 기본 요건 (아래 참조) - JDK, C++ 컴파일러, MSYS2 (Windows에서 빌드하는 경우) 등 설치
4a단계: Ubuntu Linux, macOS, 기타 Unix 계열 시스템에서 Bazel 빌드
Windows 안내는 Windows에서 Bazel 빌드하기를 참조하세요.
목표: Bazel을 실행하여 커스텀 Bazel 바이너리(bazel-bin/src/bazel-dev
)를 빌드합니다.
안내:
Bash 터미널 시작
cd
를 Bazel 소스를 추출 (또는 클론)한 디렉터리에 복사합니다.예를 들어 홈 디렉터리에 있는 소스를 추출한 경우 다음을 실행합니다.
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')
cd
를 Bazel 소스를 추출 (또는 클론)한 디렉터리에 복사합니다.예를 들어 홈 디렉터리에 있는 소스를 추출한 경우 다음을 실행합니다.
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, 압축 해제
C++ 빌드 도구 모음
JDK. 버전 11은 필수 항목입니다.
Python. 버전 2와 버전 3이 지원되므로 이 중 하나를 설치하면 됩니다.
예를 들어 Ubuntu Linux에서는 다음 명령어를 사용해 이러한 요구사항을 설치할 수 있습니다.
sudo apt-get install build-essential openjdk-11-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 및 Zip 해제를 위한 MSYS2 패키지 MSYS2 셸에서 다음 명령어를 실행합니다.
pacman -S zip unzip patch
Visual C++ 컴파일러. Visual Studio 2015 이상의 일부로 또는 최신 Visual Studio 2017용 빌드 도구를 설치하여 Visual C++ 컴파일러를 설치합니다.
JDK. 버전 11은 필수 항목입니다.
Python. 버전 2와 버전 3이 지원되므로 이 중 하나를 설치하면 됩니다. Windows 기반 버전 (https://www.python.org에서 다운로드 가능)이 필요합니다. MSYS2에서 팩맨을 통해 설치된 버전은 작동하지 않습니다.
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/jdk1.8.0_112"
또는 (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/jdk1.8.0_112"
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을 실행할 수 있습니다.