이 페이지에서는 소스에서 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
(유닉스의 경우) 또는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 터미널 시작
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. 기본 요건 설치
압축 및 압축 해제용 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에서 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/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을 실행할 수 있습니다.