หน้านี้จะอธิบายวิธีติดตั้ง 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 (หรือคุณจะสร้างจาก 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
)
วิธีการ
เริ่มต้นพรอมต์คำสั่ง (เมนูเริ่มต้น > เรียกใช้ > "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ก: บูตสตับ Bazel ใน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้าย Unix
โปรดดูวิธีการสำหรับ Windows ที่ Bootstrap Bazel ใน Windows
2.1 ติดตั้งข้อกําหนดเบื้องต้น
Bash
zip, unzip
เครื่องมือสร้าง C++
JDK ต้องใช้เวอร์ชัน 11
Python รองรับเวอร์ชัน 2 และ 3 โดยการติดตั้งเวอร์ชันใดเวอร์ชันหนึ่งก็เพียงพอแล้ว
เช่น ใน Ubuntu Linux คุณสามารถติดตั้งข้อกำหนดเหล่านี้ได้โดยใช้คำสั่งต่อไปนี้
sudo apt-get install build-essential openjdk-11-jdk python zip unzip
2.2 Bootstrap 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 โปรดดู Bootstrap 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 ต้องใช้เวอร์ชัน 11
Python รองรับเวอร์ชัน 2 และ 3 จะติดตั้งเวอร์ชันใดเวอร์ชันหนึ่งก็พอ คุณต้องใช้เวอร์ชันสำหรับ Windows (ดาวน์โหลดได้จาก https://www.python.org) เวอร์ชันที่ติดตั้งผ่าน Paman ใน 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="C:/Program Files/Java/jdk1.8.0_112"
หรือ (โดยใช้ 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/jdk1.8.0_112"
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 จาก Shell ของ MSYS2 คุณสามารถเรียกใช้ Bazel จาก Command Prompt (cmd.exe
) หรือ PowerShell