หน้านี้อธิบายวิธีติดตั้ง Bazel จากแหล่งที่มาและให้เคล็ดลับการแก้ปัญหาสำหรับปัญหาที่พบได้ทั่วไป
หากต้องการสร้าง Bazel จากซอร์สโค้ด ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
สร้างโดยไม่ใช้ไบนารี Bazel ที่มีอยู่ ซึ่งเรียกว่า bootstrapping
สร้าง Bazel โดยใช้ Bazel
สรุป
รับ Bazel เวอร์ชันล่าสุดจากหน้ารุ่นของ GitHub หรือใช้ Bazelisk
ดาวน์โหลดซอร์สโค้ดของ Bazel จาก GitHub แล้วแตกไฟล์ในที่ใดก็ได้ หรือจะ git โคลนโครงสร้างต้นทางจาก https://github.com/bazelbuild/bazel ก็ได้
ติดตั้งข้อกําหนดเบื้องต้นเดียวกันกับสำหรับการเริ่มต้นระบบ (ดูสําหรับระบบที่คล้ายกับ Unix หรือสําหรับ Windows)
สร้างบิลด์การพัฒนาของ Bazel โดยใช้ Bazel:
bazel build //src:bazel-dev
(หรือbazel build //src:bazel-dev.exe
ใน Windows)ไฟล์ไบนารีที่ได้จะอยู่ที่
bazel-bin/src/bazel-dev
(หรือbazel-bin\src\bazel-dev.exe
ใน Windows) คุณสามารถคัดลอกไปไว้ที่ใดก็ได้และนำไปใช้ได้ทันทีโดยไม่ต้องติดตั้งเพิ่มเติม
ดูวิธีการโดยละเอียดได้ที่ด้านล่าง
ขั้นตอนที่ 1: ดาวน์โหลด Bazel เวอร์ชันล่าสุด
เป้าหมาย: ติดตั้งหรือดาวน์โหลด Bazel เวอร์ชันที่เผยแพร่ ตรวจสอบว่าคุณเรียกใช้ bazel
ในเทอร์มินัลได้
เหตุผล: หากต้องการสร้าง Bazel จากซอร์สทรี GitHub คุณต้องมีไฟล์ไบนารี Bazel ที่มีอยู่ก่อน คุณติดตั้งแอปได้จากตัวจัดการแพ็กเกจหรือดาวน์โหลดจาก GitHub ก็ได้ โปรดดูการติดตั้ง Bazel (หรือคุณจะสร้างจาก Scratch (bootstrap) ก็ได้)
การแก้ปัญหา
หากเรียกใช้ Bazel ด้วยการพิมพ์
bazel
ในเทอร์มินัลไม่ได้ ให้ทำดังนี้ไดเรกทอรีของไฟล์ปฏิบัติการ Bazel อาจไม่ได้อยู่ใน PATH
ปัญหานี้ไม่ใช่เรื่องใหญ่ คุณจะต้องพิมพ์เส้นทางแบบเต็มแทนการพิมพ์
bazel
อาจเป็นเพราะไฟล์ปฏิบัติการของ Bazel ไม่ได้ชื่อ
bazel
(ใน Unix) หรือbazel.exe
(ใน Windows)นี่ไม่ใช่ปัญหาใหญ่ คุณสามารถเปลี่ยนชื่อไฟล์ไบนารีหรือพิมพ์ชื่อไฟล์ไบนารีแทน
bazel
ก็ได้อาจเป็นเพราะไบนารีไม่สามารถเรียกใช้ได้ (ใน Unix)
คุณต้องทำให้ไบนารีเป็นไฟล์ปฏิบัติการโดยเรียกใช้
chmod +x /path/to/bazel
ขั้นตอนที่ 2: ดาวน์โหลดแหล่งที่มาของ Bazel จาก GitHub
หากคุ้นเคยกับ Git ให้ใช้คำสั่ง git clone https://github.com/bazelbuild/bazel
กรณีอื่น:
ดาวน์โหลดแหล่งที่มาล่าสุดเป็นไฟล์ ZIP
แยกเนื้อหาในที่ใดที่หนึ่ง
เช่น สร้างไดเรกทอรี
bazel-src
ภายใต้ไดเรกทอรีบ้าน แล้วแตกไฟล์ในไดเรกทอรีนั้น
ขั้นตอนที่ 3: ติดตั้งข้อกำหนดเบื้องต้น
ติดตั้งข้อกําหนดเบื้องต้นเดียวกันกับการสร้าง Bootstrap (ดูด้านล่าง) เช่น JDK, C++ compiler, MSYS2 (หากสร้างใน Windows) ฯลฯ
ขั้นตอนที่ 4ก: สร้าง Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้ายกับ Unix
โปรดดูวิธีการสำหรับ Windows ที่สร้าง Bazel บน Windows
เป้าหมาย: ใช้ 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
)
ขั้นตอนที่ 4ข: บิลด์ Bazel ใน Windows
ดูวิธีการสำหรับระบบที่คล้ายกับ Unix ได้ที่หัวข้อUbuntu Linux, macOS และระบบอื่นๆ ที่คล้ายกับ Unix
เป้าหมาย: ใช้ Bazel เพื่อสร้างไบนารี Bazel ที่กำหนดเอง
(bazel-bin\src\bazel-dev.exe
)
วิธีการ
เริ่ม Command Prompt (เมนู Start > Run > "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 (ที่เก็บข้อมูลการเผยแพร่)
(ขั้นตอนนี้เหมือนกันในทุกแพลตฟอร์ม)
ดาวน์โหลด
bazel-<version>-dist.zip
จาก GitHub เช่นbazel-0.28.1-dist.zip
โปรดทราบ:
- มีที่เก็บไฟล์สำหรับแจกจ่ายรายการเดียวที่ไม่ขึ้นอยู่กับสถาปัตยกรรม ไม่มีที่เก็บไฟล์สำหรับแจกจ่ายเฉพาะสถาปัตยกรรมหรือระบบปฏิบัติการ
- แหล่งที่มาเหล่านี้ไม่เหมือนกับต้นไม้ซอร์สโค้ดของ GitHub คุณต้องใช้ที่เก็บข้อมูลการแจกจ่ายเพื่อเปิดเครื่อง Bazel คุณใช้ซอร์สทรีที่โคลนจาก GitHub ไม่ได้ (ที่เก็บถาวรสำหรับการเผยแพร่ประกอบด้วยไฟล์ต้นฉบับที่สร้างขึ้นซึ่งจำเป็นสำหรับการเริ่มต้นระบบ และไม่ได้เป็นส่วนหนึ่งของโครงสร้างแหล่งที่มา Git ปกติ)
แตกไฟล์เก็บถาวรของรุ่นที่ใดก็ได้บนดิสก์
คุณควรยืนยันลายเซ็นที่สร้างโดยคีย์รุ่น 3D5919B448457EE0 ของ Bazel
ขั้นตอนที่ 2ก: บูตสตับ Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
โปรดดูวิธีการสำหรับ Windows ที่หัวข้อBootstrap Bazel ใน Windows
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 เริ่มต้นใช้งาน Bazel ใน Unix
เปิดหน้าต่างเชลล์หรือเทอร์มินัล
cd
ไปยังไดเรกทอรีที่คุณแตกไฟล์เก็บถาวรของ Distributionเรียกใช้สคริปต์การคอมไพล์:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh
ระบบจะวางเอาต์พุตที่คอมไพล์แล้วไว้ใน output/bazel
นี่คือไบนารีของ
Bazel ในตัว โดยไม่มี JDK ฝังอยู่ คุณสามารถคัดลอกไปไว้ที่ใดก็ได้หรือจะใช้ในตำแหน่งเดิมก็ได้ เพื่อความสะดวก ให้คัดลอกไบนารีนี้ไปยังไดเรกทอรีที่อยู่ใน PATH
ของคุณ (เช่น /usr/local/bin
ใน Linux)
หากต้องการสร้างไบนารี bazel
ในลักษณะที่ทำซ้ำได้ ให้ตั้งค่า SOURCE_DATE_EPOCH
ในขั้นตอน "เรียกใช้สคริปต์การคอมไพล์" ด้วย
ขั้นตอนที่ 2ข: Bootstrap Bazel ใน Windows
ดูวิธีการสำหรับระบบที่คล้าย Unix ได้ที่หัวข้อสร้าง Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
2.1 ติดตั้งข้อกําหนดเบื้องต้น
แพ็กเกจ MSYS2 สำหรับ zip และ unzip เรียกใช้คำสั่งต่อไปนี้ในเชลล์ MSYS2
pacman -S zip unzip patch
คอมไพเลอร์ Visual C++ ติดตั้งคอมไพเลอร์ Visual C++ โดยเป็นส่วนหนึ่งของ Visual Studio 2015 ขึ้นไป หรือติดตั้ง Build Tools เวอร์ชันล่าสุดสำหรับ Visual Studio 2017
JDK ต้องใช้เวอร์ชัน 21
Python รองรับเวอร์ชัน 2 และ 3 โดยการติดตั้งเวอร์ชันใดเวอร์ชันหนึ่งก็เพียงพอแล้ว คุณต้องมีเวอร์ชัน Windows ที่มาพร้อมเครื่อง (ดาวน์โหลดได้จาก https://www.python.org) เวอร์ชันที่ติดตั้งผ่าน แพ็กแมน ใน MSYS2 จะใช้ไม่ได้
2.2 Bootstrap Bazel ใน Windows
เปิดเชลล์ MSYS2
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
BAZEL_VS
หรือBAZEL_VC
(ไม่เหมือนกัน): ตั้งค่าเป็นเส้นทางไปยังไดเรกทอรี Visual Studio (BAZEL_VS) หรือไปยังไดเรกทอรี Visual C++ (BAZEL_VC) แค่การตั้งค่าก็เพียงพอแล้วBAZEL_SH
: เส้นทางของ MSYS2bash.exe
ดูคำสั่งในตัวอย่างด้านล่างอย่าตั้งค่าเป็น
C:\Windows\System32\bash.exe
(คุณมีไฟล์นั้นหากติดตั้ง Windows Subsystem สำหรับ Linux) Bazel ไม่รองรับbash.exe
เวอร์ชันนี้PATH
: เพิ่มไดเรกทอรี PythonJAVA_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
ไปยังไดเรกทอรีที่คุณแตกไฟล์เก็บถาวรของ Distributionเรียกใช้สคริปต์คอมไพล์:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
เอาต์พุตที่คอมไพล์แล้วจะวางอยู่ใน output/bazel.exe
นี่คือไบนารีของ
Bazel ในตัว โดยไม่มี JDK ฝังอยู่ คุณสามารถคัดลอกไปไว้ที่ใดก็ได้หรือจะใช้ในตำแหน่งเดิมก็ได้ เพื่อความสะดวก โปรดคัดลอกไบนารีนี้ไปยังไดเรกทอรีที่อยู่ใน PATH
ของคุณ
หากต้องการสร้างไบนารี bazel.exe
ในลักษณะที่ทำซ้ำได้ ให้ตั้งค่า SOURCE_DATE_EPOCH
ในขั้นตอน "เรียกใช้สคริปต์การคอมไพล์" ด้วย
คุณไม่จำเป็นต้องเรียกใช้ Bazel จากเชลล์ MSYS2 คุณสามารถเรียกใช้ Bazel จาก Command Prompt (cmd.exe
) หรือ PowerShell