หน้านี้อธิบายวิธีติดตั้ง 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
(ใน Unixes) หรือbazel.exe
(ใน Windows)นี่ไม่ใช่ปัญหาใหญ่ คุณจะเปลี่ยนชื่อไบนารีหรือพิมพ์ชื่อไบนารีแทน
bazel
ก็ได้ไบนารีนั้นอาจไม่ใช่คำสั่ง (ใน Unixes)
คุณต้องทำให้ไบนารีเป็นไฟล์ปฏิบัติการโดยเรียกใช้
chmod +x /path/to/bazel
ขั้นตอนที่ 2: ดาวน์โหลดแหล่งที่มาของ Bazel จาก GitHub
หากคุ้นเคยกับ Git ก็ให้ git clone https://github.com/bazelbuild/bazel
หากไม่มี ให้ทำดังนี้
ดาวน์โหลดแหล่งที่มาล่าสุดเป็นไฟล์ ZIP
แยกเนื้อหาในที่ใดที่หนึ่ง
เช่น สร้างไดเรกทอรี
bazel-src
ใต้ไดเรกทอรีหน้าแรกและแยกไฟล์ออกมา
ขั้นตอนที่ 3: ติดตั้งข้อกำหนดเบื้องต้น
ติดตั้งข้อกำหนดเบื้องต้นเดียวกันกับการเปิดเครื่อง (ดูด้านล่าง) เช่น 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 แบบในตัว คุณสามารถคัดลอก ไปยังไดเรกทอรีใดก็ได้และใช้งานทันที (มีประโยชน์ถ้าไดเรกทอรีนั้นอยู่ใน เส้นทางของคุณ เพื่อให้คุณสามารถเรียกใช้ "bazel" ได้ทุกที่)
สร้าง Bazel ตั้งแต่เริ่มต้น (การเปิดเครื่องใหม่)
คุณยังสร้าง Bazel ใหม่ตั้งแต่ต้นโดยไม่ต้องใช้ไบนารี Bazel ที่มีอยู่ได้อีกด้วย
ขั้นตอนที่ 1: ดาวน์โหลดแหล่งที่มาของ Bazel (ที่เก็บถาวรสำหรับการเผยแพร่)
(ขั้นตอนนี้เหมือนกันในทุกแพลตฟอร์ม)
ดาวน์โหลด
bazel-<version>-dist.zip
จาก GitHub ตัวอย่างเช่นbazel-0.28.1-dist.zip
โปรดทราบ:
- มีที่เก็บถาวรสำหรับการเผยแพร่เดี่ยวที่ไม่ขึ้นกับสถาปัตยกรรม ไม่มีที่เก็บถาวรสำหรับการกระจายเฉพาะสถาปัตยกรรมหรือระบบปฏิบัติการโดยเฉพาะ
- แหล่งที่มาเหล่านี้ไม่เหมือนกับแผนผังแหล่งที่มาของ GitHub คุณต้องใช้ที่เก็บข้อมูลการแจกจ่ายเพื่อเปิดเครื่อง Bazel คุณจะใช้แผนผังซอร์สที่โคลนจาก GitHub ไม่ได้ (ที่เก็บถาวรสำหรับการเผยแพร่ประกอบด้วยไฟล์ต้นฉบับที่สร้างขึ้นซึ่งจำเป็นสำหรับการเริ่มต้นระบบ และไม่ได้เป็นส่วนหนึ่งของโครงสร้างแหล่งที่มา Git ปกติ)
คลายการแพคข้อมูลที่เก็บถาวรการเผยแพร่ที่ใดที่หนึ่งในดิสก์
คุณควรตรวจสอบลายเซ็นที่สร้างโดยคีย์การเผยแพร่ 3D5919B448457EE0 ของ Bazel
ขั้นตอนที่ 2ก: Bootstrap Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้ายกับ Unix
โปรดดูวิธีการสำหรับ Windows ที่หัวข้อ Bootstrap Bazel ใน Windows
2.1 ติดตั้งสิ่งที่ต้องมีก่อน
แบช
zip, คลายการบีบอัด
C++ Build Toolchain
JDK. ต้องใช้เวอร์ชัน 21
Python รองรับเวอร์ชัน 2 และ 3 จะติดตั้งเวอร์ชันใดเวอร์ชันหนึ่งก็พอ
เช่น ใน Ubuntu Linux คุณติดตั้งข้อกำหนดเหล่านี้ได้โดยใช้คำสั่งต่อไปนี้
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2 Bootstrap Bazel บน Unix
เปิด Shell หรือหน้าต่างเทอร์มินัล
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
ในขั้นตอน "เรียกใช้สคริปต์การคอมไพล์" ด้วย
ขั้นตอนที่ 2ข: Bootstrap Bazel ใน Windows
สำหรับคำแนะนำสำหรับระบบที่คล้ายกับ Unix โปรดดู Bootstrap Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้ายกับ Unix
2.1 ติดตั้งสิ่งที่ต้องมีก่อน
แพ็กเกจ MSYS2 สำหรับการซิปและคลายการบีบอัด เรียกใช้คำสั่งต่อไปนี้ในเชลล์ 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) เวอร์ชันที่ติดตั้งผ่าน Paman ใน MSYS2 จะใช้งานไม่ได้
2.2 Bootstrap Bazel ใน Windows
เปิด Shell 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
ไปยังไดเรกทอรีที่คุณคลายการแพคข้อมูลที่เก็บถาวรของการเผยแพร่เรียกใช้สคริปต์คอมไพล์:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
เอาต์พุตที่คอมไพล์แล้วจะวางอยู่ใน output/bazel.exe
นี่คือไบนารีของ
Bazel ในตัว โดยไม่มี JDK ฝังอยู่ คุณสามารถคัดลอกไปได้ทุกที่
หรือนำไปใช้แทนที่ เพื่อความสะดวก โปรดคัดลอกไบนารีนี้ไปยังไดเรกทอรีที่อยู่ใน PATH
ของคุณ
หากต้องการสร้างไบนารี bazel.exe
ในลักษณะที่ทำซ้ำได้ ให้ตั้งค่า SOURCE_DATE_EPOCH
ในขั้นตอน "เรียกใช้สคริปต์การคอมไพล์" ด้วย
คุณไม่จำเป็นต้องเรียกใช้ Bazel จาก Shell ของ MSYS2 คุณสามารถเรียกใช้ Bazel จาก Command Prompt (cmd.exe
) หรือ PowerShell ได้