หน้านี้จะอธิบายวิธีติดตั้ง 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++ คอมไพเลอร์, 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
ก็ได้ เพื่อให้ได้ไบนารีขนาดเล็ก แต่สร้างได้ช้ากว่าคุณสร้างด้วย Flag
--stamp --embed_label=X.Y.Z
เพื่อฝัง Bazel ได้ สำหรับไบนารีเพื่อให้bazel --version
แสดงผลตามเวอร์ชันที่ระบุเอาต์พุตจะอยู่ที่
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 //src:bazel-dev.exe
หรือคุณอาจเรียกใช้
bazel build //src:bazel.exe --compilation_mode=opt
เพื่อให้ได้ไบนารีที่เล็กลง แต่สร้างได้ช้ากว่าคุณสร้างด้วย Flag
--stamp --embed_label=X.Y.Z
เพื่อฝัง Bazel ได้ สำหรับไบนารีเพื่อให้bazel --version
แสดงผลตามเวอร์ชันที่ระบุเอาต์พุตจะอยู่ที่
bazel-bin\src\bazel-dev.exe
(หรือbazel-bin\src\bazel.exe
)
ขั้นตอนที่ 5: ติดตั้งไบนารีที่สร้างขึ้น
อันที่จริง ไม่ต้องติดตั้งอะไรเลย
เอาต์พุตของขั้นตอนก่อนหน้าเป็นไบนารี Bazel แบบในตัว คุณสามารถคัดลอก ลงในไดเรกทอรีทั้งหมดและใช้งานได้ทันที (ซึ่งจะเป็นประโยชน์หากไดเรกทอรีนั้นเปิดอยู่ เส้นทางของคุณเพื่อให้คุณสามารถเรียกใช้ "bazel" everywhere.)
สร้าง Bazel ตั้งแต่เริ่มต้น (การเปิดเครื่องใหม่)
คุณยังสร้าง Bazel ใหม่ตั้งแต่ต้นโดยไม่ต้องใช้ไบนารี Bazel ที่มีอยู่ได้ด้วย
ขั้นตอนที่ 1: ดาวน์โหลดแหล่งที่มาของ Bazel (ที่เก็บถาวรสำหรับการเผยแพร่)
(ขั้นตอนนี้เหมือนกันในทุกแพลตฟอร์ม)
ดาวน์โหลด
bazel-<version>-dist.zip
จาก เช่น GitHubbazel-0.28.1-dist.zip
โปรดทราบ:
- มีที่เก็บถาวรสำหรับการเผยแพร่เดี่ยวที่ไม่ขึ้นกับสถาปัตยกรรม ไม่มีที่เก็บถาวรสำหรับการกระจายเฉพาะสถาปัตยกรรมหรือระบบปฏิบัติการโดยเฉพาะ
- แหล่งที่มาเหล่านี้ไม่เหมือนกับแผนผังแหล่งที่มาของ GitHub คุณ และต้องใช้ที่เก็บข้อมูลการแจกจ่ายเพื่อบูตสแตรป Bazel คุณไม่สามารถ ใช้แผนผังซอร์สที่โคลนจาก GitHub (ที่เก็บถาวรของการเผยแพร่ประกอบด้วย ไฟล์ต้นฉบับที่สร้างขึ้นซึ่งจำเป็นสำหรับการเปิดเครื่องและไม่ได้เป็นส่วนประกอบ ของโครงสร้างแหล่งที่มา Git ปกติ)
คลายการแพคข้อมูลที่เก็บถาวรการเผยแพร่ที่ใดที่หนึ่งในดิสก์
คุณควรยืนยันลายเซ็นที่เขียนโดย Bazel คีย์การเผยแพร่ 3D5919B448457EE0
ขั้นตอนที่ 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) หรือไปยัง Visual ไดเรกทอรี C++ (BAZEL_VC) แค่การตั้งค่าก็เพียงพอแล้วBAZEL_SH
: เส้นทางของ MSYS2bash.exe
ดูคำสั่งใน ตัวอย่างด้านล่างอย่าตั้งค่าเป็น
C:\Windows\System32\bash.exe
(คุณมีไฟล์นั้น ถ้าคุณติดตั้งระบบย่อยของ Windows สำหรับ 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