หน้านี้อธิบายวิธีติดตั้ง Bazel จากแหล่งที่มาและให้คําแนะนําในการแก้ปัญหาทั่วไป
หากต้องการสร้าง Bazel จากแหล่งที่มา ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
สร้างโดยไม่มีไบนารี Bazel ที่มีอยู่ ซึ่งเรียกว่าการเปิดเครื่อง
สร้าง Bazel โดยใช้ Bazel
สรุป
ดู Bazel รุ่นล่าสุดจากหน้าที่เผยแพร่ GitHub หรือกับ Bazelisk
ดาวน์โหลดแหล่งที่มาของ Bazel จาก GitHub และแยกไฟล์ออกจากที่อื่น หรืออาจโคลนแผนผังต้นทางจาก 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 (รองเท้าบู๊ต) ก็ได้)
การแก้ปัญหา
หากเรียกใช้ 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
เพื่อสร้างไบนารีขนาดเล็กลงก็ได้ แต่สร้างได้ช้ากว่าเอาต์พุตจะอยู่ที่
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
)
วิธีการ
เริ่ม 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
เพื่อกําหนดให้ไบนารีขนาดเล็กลงแต่สร้างช้าลงก็ได้เอาต์พุตจะอยู่ที่
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 คุณจะใช้แผนผังแหล่งที่มาที่โคลนจาก GitHub ไม่ได้ (ที่เก็บถาวรของการเผยแพร่มีไฟล์ต้นฉบับที่สร้างขึ้นซึ่งจําเป็นสําหรับการเปิดเครื่องและและไม่ได้เป็นส่วนหนึ่งของโครงสร้างแหล่งที่มา Git ปกติ)
คลายไฟล์ที่เก็บถาวรของการเผยแพร่ในดิสก์
คุณควรยืนยันลายเซ็นที่สร้างโดยคีย์การเผยแพร่ 3D5919B448457EE0 ของ Bazel
ขั้นตอนที่ 2A: Bootstrap Bazel บน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้ายกับ Unix
โปรดดูวิธีการสําหรับ Windows ที่หัวข้อ Bootstrap Bazel บน Windows
2.1. ติดตั้งข้อกําหนดเบื้องต้น
บาช
zip, แตกไฟล์
เชนเครื่องมือสร้าง C++
JDK ต้องใช้เวอร์ชัน 11
Python รองรับเวอร์ชัน 2 และ 3 การติดตั้งเพียงเวอร์ชันเดียวก็เพียงพอแล้ว
ตัวอย่างเช่น ใน Ubuntu Linux คุณสามารถติดตั้งข้อกําหนดเหล่านี้โดยใช้คําสั่งต่อไปนี้
sudo apt-get install build-essential openjdk-11-jdk python zip unzip
2.2. รองเท้าบู๊ตสเต็ป 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
ในขั้นตอน "เรียกใช้สคริปต์คอมไพล์" ด้วย
ขั้นตอนที่ 2B: Bootstrap Bazel บน Windows
ดูวิธีการสําหรับระบบที่มีลักษณะเหมือน Unix ได้ที่ Bootstrap Bazel บน Ubuntu Linux, macOS และระบบอื่นๆ ที่คล้ายกับ Unix
2.1. ติดตั้งข้อกําหนดเบื้องต้น
แพ็กเกจ MSYS2 สําหรับการเพิ่มและแตกไฟล์ เรียกใช้คําสั่งต่อไปนี้ใน MSYS2 Shell
pacman -S zip unzip patch
คอมไพเลอร์ Visual C++ ติดตั้งคอมไพเลอร์ Visual C++ เป็นส่วนหนึ่งของ Visual Studio 2015 ขึ้นไป หรือติดตั้งเครื่องมือสร้างเครื่องมือสําหรับ Visual Studio 2017
JDK ต้องใช้เวอร์ชัน 11
Python รองรับเวอร์ชัน 2 และ 3 การติดตั้งเพียงเวอร์ชันเดียวก็เพียงพอแล้ว คุณต้องใช้เวอร์ชันดั้งเดิมของ Windows (ดาวน์โหลดได้จาก https://www.python.org) เวอร์ชันที่ติดตั้งผ่าน Pacman ใน MSYS2 จะไม่ทํางาน
2.2. Bootstrap Bazel บน Windows
เปิด MSYS2 Shell
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
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
ไปยังไดเรกทอรีที่คุณแตกที่เก็บถาวรการแจกจ่ายเรียกใช้สคริปต์การรวบรวม:
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 Shell คุณสามารถเรียกใช้ Bazel จาก Command Prompt (cmd.exe
) หรือ PowerShell