Halaman ini menjelaskan cara menginstal Bazel dari sumber dan memberikan tips pemecahan masalah untuk masalah umum.
Untuk mem-build Bazel dari sumber, Anda dapat melakukan salah satu hal berikut:
Mem-build-nya menggunakan biner Bazel yang ada
Mem-build-nya tanpa biner Bazel yang ada, yang dikenal sebagai bootstrapping.
Mem-build Bazel menggunakan Bazel
Ringkasan
Dapatkan rilis Bazel terbaru dari halaman rilis GitHub atau dengan Bazelisk.
Unduh sumber Bazel dari GitHub dan ekstrak di suatu tempat. Atau, Anda dapat melakukan git clone pohon sumber dari https://github.com/bazelbuild/bazel
Instal prasyarat yang sama seperti untuk bootstrapping (lihat untuk sistem yang mirip Unix atau untuk Windows)
Build Bazel versi pengembangan menggunakan Bazel:
bazel build //src:bazel-dev(ataubazel build //src:bazel-dev.exedi Windows)Biner yang dihasilkan berada di
bazel-bin/src/bazel-dev(ataubazel-bin\src\bazel-dev.exedi Windows). Anda dapat menyalinnya ke mana pun Anda suka dan langsung menggunakannya tanpa perlu menginstal lebih lanjut.
Petunjuk mendetail akan dijelaskan di bawah.
Langkah 1: Dapatkan rilis Bazel terbaru
Tujuan: Menginstal atau mendownload versi rilis Bazel. Pastikan Anda dapat menjalankannya dengan mengetik bazel di terminal.
Alasan: Untuk mem-build Bazel dari pohon sumber GitHub, Anda memerlukan biner Bazel yang sudah ada. Anda dapat menginstalnya dari pengelola paket atau mendownloadnya dari GitHub. Lihat Menginstal Bazel. (Atau, Anda dapat mem-build dari awal (bootstrap).)
Pemecahan masalah:
Jika Anda tidak dapat menjalankan Bazel dengan mengetik
bazeldi terminal:Mungkin direktori biner Bazel Anda tidak ada di PATH.
Ini bukan masalah besar. Anda harus mengetik jalur lengkap, bukan
bazel.Mungkin biner Bazel itu sendiri tidak disebut
bazel(di Unix) ataubazel.exe(di Windows).Ini bukan masalah besar. Anda dapat mengganti nama biner, atau mengetik nama biner, bukan
bazel.Mungkin biner tidak dapat dieksekusi (di Unix).
Anda harus membuat biner yang dapat dieksekusi dengan menjalankan
chmod +x /path/to/bazel.
Langkah 2: Download sumber Bazel dari GitHub
Jika Anda sudah familiar dengan Git, cukup lakukan git clone https://github.com/bazelbuild/bazel
Atau:
Ekstrak konten di suatu tempat.
Misalnya, buat direktori
bazel-srcdi direktori utama Anda dan ekstrak di sana.
Langkah 3: Instal prasyarat
Instal prasyarat yang sama seperti untuk bootstrapping (lihat di bawah) -- JDK, compiler C++, MSYS2 (jika Anda mem-build di Windows), dll.
Langkah 4a: Build Bazel di Ubuntu Linux, macOS, dan sistem yang mirip Unix lainnya
Untuk mengetahui petunjuk bagi Windows, lihat Mem-build Bazel di Windows.
Tujuan: Jalankan Bazel untuk mem-build biner Bazel kustom (bazel-bin/src/bazel-dev).
Petunjuk:
Mulai terminal Bash
cdke direktori tempat Anda mengekstrak (atau meng-clone) sumber Bazel.Misalnya, jika Anda mengekstrak sumber di direktori utama, jalankan:
cd ~/bazel-srcBuild Bazel dari sumber:
bazel build //src:bazel-devAtau, Anda dapat menjalankan
bazel build //src:bazel --compilation_mode=optuntuk menghasilkan biner yang lebih kecil, tetapi lebih lambat untuk di-build.Anda dapat mem-build dengan flag
--stamp --embed_label=X.Y.Zuntuk menyematkan versi Bazel untuk biner sehinggabazel --versionmenampilkan versi yang diberikan.Output akan berada di
bazel-bin/src/bazel-dev(ataubazel-bin/src/bazel).
Langkah 4b: Build Bazel di Windows
Untuk mengetahui petunjuk bagi sistem yang mirip Unix, lihat Ubuntu Linux, macOS, dan sistem yang mirip Unix lainnya.
Tujuan: Jalankan Bazel untuk mem-build biner Bazel kustom
(bazel-bin\src\bazel-dev.exe).
Petunjuk:
Mulai Command Prompt (Start Menu > Run > "cmd.exe")
cdke direktori tempat Anda mengekstrak (atau meng-clone) sumber Bazel.Misalnya, jika Anda mengekstrak sumber di direktori utama, jalankan:
cd %USERPROFILE%\bazel-srcBuild Bazel dari sumber:
bazel build //src:bazel-dev.exe
Atau, Anda dapat menjalankan
bazel build //src:bazel.exe --compilation_mode=optuntuk menghasilkan biner yang lebih kecil, tetapi lebih lambat untuk di-build.Anda dapat mem-build dengan flag
--stamp --embed_label=X.Y.Zuntuk menyematkan versi Bazel untuk biner sehinggabazel --versionmenampilkan versi yang diberikan.Output akan berada di
bazel-bin\src\bazel-dev.exe(ataubazel-bin\src\bazel.exe).
Langkah 5: Instal biner yang di-build
Sebenarnya, tidak ada yang perlu diinstal.
Output langkah sebelumnya adalah biner Bazel mandiri. Anda dapat menyalinnya ke direktori mana pun dan langsung menggunakannya. (Hal ini berguna jika direktori tersebut ada di PATH Anda sehingga Anda dapat menjalankan "bazel" di mana saja.)
Mem-build Bazel dari awal (bootstrapping)
Anda juga dapat mem-build Bazel dari awal, tanpa menggunakan biner Bazel yang ada.
Langkah 1: Download sumber Bazel (arsip distribusi)
(Langkah ini sama untuk semua platform.)
Download
bazel-<version>-dist.zipdari GitHub, misalnyabazel-0.28.1-dist.zip.Perhatian:
- Ada satu arsip distribusi tunggal dan independen arsitektur. Tidak ada arsip distribusi khusus arsitektur atau khusus OS.
- Sumber ini tidak sama dengan pohon sumber GitHub. Anda harus menggunakan arsip distribusi untuk melakukan bootstrap Bazel. Anda tidak dapat menggunakan pohon sumber yang di-clone dari GitHub. (Arsip distribusi berisi file sumber yang dihasilkan yang diperlukan untuk bootstrapping dan bukan bagian dari pohon sumber Git normal.)
Ekstrak arsip distribusi di suatu tempat di disk.
Anda harus memverifikasi tanda tangan yang dibuat oleh kunci rilis Bazel 3D5919B448457EE0.
Langkah 2a: Bootstrap Bazel di Ubuntu Linux, macOS, dan sistem yang mirip Unix lainnya
Untuk mengetahui petunjuk bagi Windows, lihat Bootstrap Bazel di Windows.
2.1. Instal prasyarat
Bash
zip, unzip
Toolchain build C++
JDK. Versi 21 diperlukan.
Python. Versi 2 dan 3 didukung, cukup instal salah satunya.
Misalnya, di Ubuntu Linux, Anda dapat menginstal persyaratan ini menggunakan perintah berikut:
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Bootstrap Bazel di Unix
Buka jendela shell atau Terminal.
cdke direktori tempat Anda mengekstrak arsip distribusi.Jalankan skrip kompilasi:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.
Output yang dikompilasi ditempatkan ke dalam output/bazel. Ini adalah biner Bazel mandiri, tanpa JDK tersemat. Anda dapat menyalinnya ke mana saja atau menggunakannya di tempat. Untuk memudahkan, salin biner ini ke direktori yang ada di PATH Anda (seperti /usr/local/bin di Linux).
Untuk mem-build biner bazel dengan cara yang dapat direproduksi, tetapkan juga
SOURCE_DATE_EPOCH
di langkah "Jalankan skrip kompilasi".
Langkah 2b: Bootstrap Bazel di Windows
Untuk mengetahui petunjuk bagi sistem yang mirip Unix, lihat Bootstrap Bazel di Ubuntu Linux, macOS, dan sistem yang mirip Unix lainnya.
2.1. Instal prasyarat
Paket MSYS2 untuk zip dan unzip. Jalankan perintah berikut di shell MSYS2:
pacman -S zip unzip patchCompiler Visual C++. Instal compiler Visual C++ sebagai bagian dari Visual Studio 2015 atau yang lebih baru, atau dengan menginstal Build Tools terbaru untuk Visual Studio 2017.
JDK. Versi 21 diperlukan.
Python. Versi 2 dan 3 didukung, cukup instal salah satunya. Anda memerlukan versi native Windows (dapat didownload dari https://www.python.org). Versi yang diinstal melalui pacman di MSYS2 tidak akan berfungsi.
2.2. Bootstrap Bazel di Windows
Buka shell MSYS2.
Tetapkan variabel lingkungan berikut:
BAZEL_VSatauBAZEL_VC(keduanya tidak sama): Tetapkan ke jalur ke direktori Visual Studio (BAZEL_VS) atau ke direktori Visual C++ (BAZEL_VC). Cukup tetapkan salah satunya.BAZEL_SH: Jalurbash.exeMSYS2. Lihat perintah dalam contoh di bawah.Jangan tetapkan ini ke
C:\Windows\System32\bash.exe. (Anda memiliki file tersebut jika menginstal Windows Subsystem for Linux.) Bazel tidak mendukung versibash.exeini.PATH: Tambahkan direktori Python.JAVA_HOME: Tetapkan ke direktori JDK.
Contoh (menggunakan 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"atau (menggunakan 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"cdke direktori tempat Anda mengekstrak arsip distribusi.Jalankan skrip kompilasi:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
Output yang dikompilasi ditempatkan ke dalam output/bazel.exe. Ini adalah biner Bazel mandiri, tanpa JDK tersemat. Anda dapat menyalinnya ke mana saja atau menggunakannya di tempat. Untuk memudahkan, salin biner ini ke direktori yang ada di PATH Anda.
Untuk mem-build biner bazel.exe dengan cara yang dapat direproduksi, tetapkan juga
SOURCE_DATE_EPOCH
di langkah "Jalankan skrip kompilasi".
Anda tidak perlu menjalankan Bazel dari shell MSYS2. Anda dapat menjalankan Bazel dari Command Prompt (cmd.exe) atau PowerShell.