หน้านี้จะอธิบายวิธีติดตั้ง Bazel จากซอร์สโค้ดและแสดงเคล็ดลับการแก้ปัญหาที่พบได้ทั่วไป
หากต้องการสร้าง Bazel จากซอร์สโค้ด ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
บิลด์โดยไม่ใช้ไฟล์ปฏิบัติการ Bazel ที่มีอยู่ ซึ่งเรียกว่าการบูต
บิลด์ Bazel โดยใช้ Bazel
สรุป
รับ Bazel เวอร์ชันล่าสุดจากหน้ารุ่นของ GitHub หรือใช้ Bazelisk
ดาวน์โหลดซอร์สโค้ดของ Bazel จาก GitHub แล้วแตกไฟล์ในที่ใดก็ได้ หรือจะโคลนซอร์สทรีจาก https://github.com/bazelbuild/bazel โดยใช้ Git ก็ได้
ติดตั้งข้อกําหนดเบื้องต้นเดียวกันกับสำหรับการเริ่มต้นระบบ (ดูสําหรับระบบที่คล้ายกับ 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 (หรือจะสร้างตั้งแต่ต้น (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
)
วิธีการ
เริ่มต้นพรอมต์คำสั่ง (เมนูเริ่มต้น > เรียกใช้ > "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 คุณต้องใช้ไฟล์เก็บถาวรของ Distribution เพื่อเริ่มต้นใช้งาน Bazel คุณใช้ซอร์สทรีที่โคลนจาก GitHub ไม่ได้ (ไฟล์เก็บถาวรของรุ่นมีไฟล์ซอร์สโค้ดที่สร้างขึ้นซึ่งจําเป็นสําหรับการเริ่มต้นใช้งานและไม่ได้อยู่ในลําดับชั้นซอร์สโค้ด Git ปกติ)
แตกไฟล์เก็บถาวรของรุ่นที่ใดก็ได้บนดิสก์
คุณควรตรวจสอบลายเซ็นที่สร้างโดยคีย์การเผยแพร่ 3D5919B448457EE0 ของ Bazel
ขั้นตอนที่ 2ก: บูตสตับ Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
โปรดดูวิธีการสำหรับ Windows ที่หัวข้อBootstrap Bazel ใน Windows
2.1 ติดตั้งข้อกําหนดเบื้องต้น
แบช
zip, คลายการบีบอัด
เครื่องมือเชนการสร้าง 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ข: บูตสตับ Bazel ใน Windows
ดูวิธีการสำหรับระบบที่คล้าย Unix ได้ที่หัวข้อสร้าง Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
2.1 ติดตั้งข้อกําหนดเบื้องต้น
แพ็กเกจ MSYS2 สำหรับการซิปและคลายการบีบอัด เรียกใช้คำสั่งต่อไปนี้ในเชลล์ 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 เริ่มต้นใช้งาน Bazel ใน Windows
เปิดเชลล์ MSYS2
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
BAZEL_VS
หรือBAZEL_VC
(ไม่เหมือนกัน): ตั้งค่าเป็นเส้นทางไปยังไดเรกทอรี Visual Studio (BAZEL_VS) หรือไดเรกทอรี C++ ของ Visual (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