หน้านี้จะอธิบายวิธีติดตั้ง Bazel จากแหล่งที่มาและให้ เคล็ดลับในการแก้ปัญหาที่พบบ่อย
หากต้องการสร้าง Bazel จากแหล่งที่มา คุณสามารถทำอย่างใดอย่างหนึ่งต่อไปนี้
สร้างโดยใช้ไบนารี Bazel ที่มีอยู่
สร้าง โดยไม่มีไบนารี Bazel ที่มีอยู่ ซึ่งรู้จักกันในชื่อการเริ่มต้น
สร้าง Bazel โดยใช้ Bazel
สรุป
ดาวน์โหลด Bazel เวอร์ชันล่าสุดจากหน้าเวอร์ชันใน GitHub หรือใช้ Bazelisk
ดาวน์โหลดแหล่งที่มาของ Bazel จาก GitHub แล้วแตกไฟล์ไว้ที่ใดที่หนึ่ง หรือจะใช้คำสั่ง git clone เพื่อโคลนซอร์สทรีจาก 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 (หรือคุณจะสร้างตั้งแต่ต้น (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: ติดตั้งข้อกำหนดเบื้องต้น
ติดตั้งข้อกำหนดเบื้องต้นเดียวกันกับการเริ่มต้นระบบ (ดูด้านล่าง) เช่น JDK, คอมไพเลอร์ C++, 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
เพื่อสร้างไบนารีขนาดเล็กกว่าก็ได้ แต่จะสร้างได้ช้ากว่าคุณสามารถสร้างด้วยแฟล็ก
--stamp --embed_label=X.Y.Z
เพื่อฝังเวอร์ชัน Bazel สำหรับไบนารีเพื่อให้bazel --version
แสดงเวอร์ชันที่ระบุผลลัพธ์จะอยู่ที่
bazel-bin/src/bazel-dev
(หรือbazel-bin/src/bazel
)
ขั้นตอนที่ 4b: สร้าง Bazel ใน Windows
ดูวิธีการสำหรับระบบที่คล้าย Unix ได้ที่ Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
เป้าหมาย: เรียกใช้ Bazel เพื่อสร้างไบนารี Bazel ที่กำหนดเอง
(bazel-bin\src\bazel-dev.exe
)
วิธีการ
เริ่ม Command Prompt (เมนูเริ่ม > เรียกใช้ > "cmd.exe")
cd
ไปยังไดเรกทอรีที่คุณแตกไฟล์ (หรือโคลน) แหล่งที่มาของ Bazelเช่น หากคุณแตกไฟล์แหล่งที่มาภายใต้ไดเรกทอรีหลัก ให้เรียกใช้คำสั่งต่อไปนี้
cd %USERPROFILE%\bazel-src
สร้าง Bazel จากแหล่งที่มา
bazel build //src:bazel-dev.exe
หรือจะเรียกใช้
bazel build //src:bazel.exe --compilation_mode=opt
เพื่อให้ได้ไบนารีที่เล็กลงก็ได้ แต่จะสร้างได้ช้ากว่าคุณสามารถสร้างด้วยแฟล็ก
--stamp --embed_label=X.Y.Z
เพื่อฝังเวอร์ชัน Bazel สำหรับไบนารีเพื่อให้bazel --version
แสดงเวอร์ชันที่ระบุเอาต์พุตจะอยู่ที่
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 คุณใช้ ไม่ได้ (ที่เก็บถาวรสำหรับการเผยแพร่มี ไฟล์ต้นฉบับที่สร้างขึ้นซึ่งจำเป็นสำหรับการเริ่มต้นระบบและไม่ได้เป็นส่วนหนึ่ง ของโครงสร้างแหล่งที่มาของ Git ปกติ)
แตกไฟล์เก็บถาวรของการจัดจำหน่ายไว้ที่ใดก็ได้บนดิสก์
คุณควรยืนยันลายเซ็นที่สร้างโดยคีย์รุ่นของ Bazel ซึ่งคือ 3D5919B448457EE0
ขั้นตอนที่ 2ก: เริ่มต้น Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
ดูวิธีการสำหรับ Windows ได้ที่เริ่มต้นใช้งาน 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 Bootstrap Bazel ใน Unix
เปิดหน้าต่างเชลล์หรือเทอร์มินัล
cd
ไปยังไดเรกทอรีที่คุณแตกไฟล์ที่เก็บการเผยแพร่เรียกใช้สคริปต์การคอมไพล์:
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
ในขั้นตอน "เรียกใช้สคริปต์การคอมไพล์" ด้วย
ขั้นตอนที่ 2b: เริ่มต้น Bazel ใน Windows
ดูวิธีการสำหรับระบบที่คล้าย Unix ได้ที่ Bootstrap Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
2.1 ติดตั้งข้อกำหนดเบื้องต้น
แพ็กเกจ MSYS2 สำหรับ zip และ unzip เรียกใช้คำสั่งต่อไปนี้ในเชลล์ MSYS2
pacman -S zip unzip patch
คอมไพเลอร์ Visual C++ ติดตั้งคอมไพเลอร์ Visual C++ เป็นส่วนหนึ่ง ของ Visual Studio 2015 ขึ้นไป หรือติดตั้งเครื่องมือบิลด์ สำหรับ Visual Studio 2017 เวอร์ชันล่าสุด
JDK ต้องใช้เวอร์ชัน 21
Python ระบบรองรับเวอร์ชัน 2 และ 3 คุณจึงติดตั้งเพียงเวอร์ชันใดเวอร์ชันหนึ่งก็เพียงพอ คุณต้องใช้เวอร์ชันที่ทำงานบน Windows (ดาวน์โหลดได้จาก https://www.python.org) เวอร์ชันที่ติดตั้งผ่าน pacman ใน 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 for 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=&
quot;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=&
quot;C:/Program Files/Java/jdk-21"cd
ไปยังไดเรกทอรีที่คุณแตกไฟล์ที่เก็บการเผยแพร่เรียกใช้สคริปต์การคอมไพล์:
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