Trang này mô tả cách cài đặt Bazel từ nguồn và cung cấp các mẹo khắc phục sự cố cho các vấn đề thường gặp.
Để tạo Bazel từ nguồn, bạn có thể làm theo một trong những cách sau:
Tạo bản dựng bằng cách sử dụng tệp nhị phân Bazel hiện có
Tạo tệp này mà không cần tệp nhị phân Bazel hiện có, còn gọi là khởi động.
Tạo Bazel bằng Bazel
Tóm tắt
Tải bản phát hành mới nhất của Bazel trên trang phát hành GitHub hoặc qua Bazelisk.
Tải nguồn của Bazel xuống từ GitHub rồi trích xuất ở nơi nào đó. Ngoài ra, bạn có thể sao chép cây nguồn từ https://github.com/bazelbuild/bazel
Cài đặt các điều kiện tiên quyết tương tự như cho quá trình tự khởi động (xem đối với các hệ thống giống Unix hoặc đối với Windows)
Tạo một bản dựng đang phát triển của Bazel bằng Bazel:
bazel build //src:bazel-dev
(hoặcbazel build //src:bazel-dev.exe
trên Windows)Tệp nhị phân thu được nằm tại
bazel-bin/src/bazel-dev
(hoặcbazel-bin\src\bazel-dev.exe
trên Windows). Bạn có thể sao chép ứng dụng ở bất cứ đâu bạn muốn và sử dụng ngay mà không cần cài đặt thêm.
Bạn có thể xem hướng dẫn chi tiết ở bên dưới.
Bước 1: Tải bản phát hành mới nhất của Bazel
Mục tiêu: Cài đặt hoặc tải phiên bản phát hành của Bazel xuống. Hãy đảm bảo bạn có thể chạy quy trình này bằng cách nhập bazel
vào một dòng lệnh.
Lý do: Để tạo Bazel từ cây nguồn GitHub, bạn cần có một tệp nhị phân Bazel có sẵn. Bạn có thể cài đặt một ứng dụng từ trình quản lý gói hoặc tải một ứng dụng xuống từ GitHub. Xem Cài đặt Bazel. (Hoặc bạn có thể tạo từ đầu (khởi động).)
Khắc phục sự cố:
Nếu bạn không thể chạy Bazel bằng cách nhập
bazel
vào một dòng lệnh:Có thể thư mục của tệp nhị phân Bazel của bạn không nằm trên PATH.
Đây không phải là vấn đề lớn. Thay vì nhập
bazel
, bạn sẽ cần nhập đường dẫn đầy đủ.Có thể chính tệp nhị phân Bazel không được gọi là
bazel
(trên Unixes) hoặcbazel.exe
(trên Windows).Đây không phải là vấn đề lớn. Bạn có thể đổi tên tệp nhị phân hoặc nhập tên của tệp nhị phân thay vì
bazel
.Có thể tệp nhị phân không thực thi được (trên Unixes).
Bạn phải tạo tệp nhị phân có thể thực thi bằng cách chạy
chmod +x /path/to/bazel
.
Bước 2: Tải nguồn của Bazel xuống từ GitHub
Nếu bạn quen thuộc với Git, thì chỉ cần git bản sao https://github.com/bazelbuild/bazel
Nếu không thì hãy làm như sau:
Trích xuất nội dung ở một nơi nào đó.
Ví dụ: tạo một thư mục
bazel-src
trong thư mục gốc và trích xuất ở đó.
Bước 3: Cài đặt điều kiện tiên quyết
Cài đặt các điều kiện tiên quyết tương tự như đối với quy trình tự khởi động (xem bên dưới) – JDK, trình biên dịch C++, MSYS2 (nếu bạn đang xây dựng trên Windows), v.v.
Bước 4a: Xây dựng Bazel trên Ubuntu Linux, macOS và các hệ thống tương tự Unix khác
Để biết hướng dẫn dành cho Windows, hãy xem nội dung Xây dựng Bazel trên Windows.
Mục tiêu: Chạy Bazel để tạo một tệp nhị phân Bazel tuỳ chỉnh (bazel-bin/src/bazel-dev
).
Hướng dẫn:
Khởi động thiết bị đầu cuối Bash
cd
vào thư mục mà bạn đã trích xuất (hoặc sao chép) các nguồn của Bazel.Ví dụ: nếu bạn đã trích xuất các nguồn trong thư mục gốc, hãy chạy:
cd ~/bazel-src
Tạo Bazel từ nguồn:
bazel build //src:bazel-dev
Ngoài ra, bạn có thể chạy
bazel build //src:bazel --compilation_mode=opt
để tạo tệp nhị phân nhỏ hơn nhưng sẽ mất nhiều thời gian hơn để tạo.Kết quả sẽ nằm ở
bazel-bin/src/bazel-dev
(hoặcbazel-bin/src/bazel
).
Bước 4b: Tạo Bazel trên Windows
Để biết hướng dẫn cho các hệ thống giống Unix, hãy xem bài viết Ubuntu Linux, macOS và các hệ thống tương tự Unix khác.
Mục tiêu: Chạy Bazel để tạo tệp nhị phân Bazel tuỳ chỉnh (bazel-bin\src\bazel-dev.exe
).
Hướng dẫn:
Khởi động trình đơn lệnh (Start Menu > Run > "cmd.exe")
cd
vào thư mục mà bạn đã trích xuất (hoặc sao chép) các nguồn của Bazel.Ví dụ: nếu bạn đã trích xuất các nguồn trong thư mục gốc, hãy chạy:
cd %USERPROFILE%\bazel-src
Tạo Bazel từ nguồn:
bazel build //src:bazel-dev.exe
Ngoài ra, bạn có thể chạy
bazel build //src:bazel.exe --compilation_mode=opt
để tạo tệp nhị phân nhỏ hơn nhưng sẽ mất nhiều thời gian hơn.Dữ liệu đầu ra sẽ nằm ở
bazel-bin\src\bazel-dev.exe
(hoặcbazel-bin\src\bazel.exe
).
Bước 5: Cài đặt tệp nhị phân đã tạo
Thực tế là không có gì để cài đặt.
Đầu ra của bước trước là một tệp nhị phân Bazel độc lập. Bạn có thể sao chép tệp này vào bất kỳ thư mục nào và sử dụng ngay. (Sẽ rất hữu ích nếu thư mục đó nằm trên PATH của bạn vì bạn có thể chạy "bazel" ở mọi nơi.)
Xây dựng Bazel từ đầu (tự khởi động)
Bạn cũng có thể tạo Bazel từ đầu mà không cần sử dụng tệp nhị phân Bazel hiện có.
Bước 1: Tải các nguồn của Bazel xuống (bản lưu trữ phân phối)
(Bước này là như nhau đối với tất cả các nền tảng.)
Tải
bazel-<version>-dist.zip
xuống từ GitHub, chẳng hạn nhưbazel-0.28.1-dist.zip
.Chú ý:
- Có một kho lưu trữ phân phối duy nhất, độc lập về kiến trúc. Không có bản lưu trữ phân phối dành riêng cho cấu trúc hoặc hệ điều hành cụ thể nào.
- Các nguồn này không giống với cây nguồn trên GitHub. Bạn phải sử dụng kho lưu trữ phân phối để tự khởi động Bazel. Bạn không thể sử dụng cây nguồn được sao chép từ GitHub. (Tệp lưu trữ phân phối chứa các tệp nguồn được tạo cần thiết cho quá trình tự khởi động và không phải là một phần của cây nguồn Git thông thường.)
Giải nén bản lưu trữ phân phối ở đâu đó trên ổ đĩa.
Bạn nên xác minh chữ ký do khoá phát hành 3D5919B448457EE0 của Bazel tạo ra.
Bước 2a: Tự khởi động Bazel trên Ubuntu Linux, macOS và các hệ thống tương tự Unix khác
Để biết hướng dẫn dành cho Windows, hãy xem phần Bootstrap Bazel trên Windows.
2.1. Cài đặt điều kiện tiên quyết
Bash
giải nén, giải nén
Chuỗi công cụ xây dựng C++
JDK. Bắt buộc phải có phiên bản 21.
Python. Phiên bản 2 và 3 được hỗ trợ, bạn chỉ cần cài đặt một trong số đó.
Ví dụ: trên Ubuntu Linux, bạn có thể cài đặt các yêu cầu này bằng lệnh sau:
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Tự thân khởi nghiệp Bazel trên Unix
Mở một cửa sổ shell hoặc cửa sổ dòng lệnh.
cd
vào thư mục bạn đã giải nén tệp lưu trữ phân phối.Chạy tập lệnh biên dịch:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh
.
Kết quả biên dịch sẽ được đặt vào output/bazel
. Đây là một tệp nhị phân Bazel độc lập, không có JDK được nhúng. Bạn có thể sao chép mã này ở bất cứ đâu hoặc sử dụng tại chỗ. Để thuận tiện, hãy sao chép tệp nhị phân này vào một thư mục trên PATH
(chẳng hạn như /usr/local/bin
trên Linux).
Để tạo tệp nhị phân bazel
theo cách có thể mô phỏng, hãy đặt SOURCE_DATE_EPOCH
trong bước "Chạy tập lệnh biên dịch".
Bước 2b: Tự thân khởi nghiệp Bazel trên Windows
Để biết hướng dẫn cho các hệ thống giống Unix, hãy xem bài viết Bootstrap Bazel trên Ubuntu Linux, macOS và các hệ thống tương tự Unix khác.
2.1. Cài đặt điều kiện tiên quyết
Các gói MSYS2 để zip và giải nén. Chạy lệnh sau trong shell MSYS2:
pacman -S zip unzip patch
Trình biên dịch Visual C++. Cài đặt trình biên dịch Visual C++ như một phần của Visual Studio 2015 trở lên hoặc bằng cách cài đặt Công cụ tạo bản dựng mới nhất cho Visual Studio 2017.
JDK. Bắt buộc phải có phiên bản 21.
Python. Phiên bản 2 và 3 được hỗ trợ, bạn chỉ cần cài đặt một trong số đó. Bạn cần có phiên bản gốc của Windows (có thể tải xuống từ https://www.python.org). Các phiên bản được cài đặt qua pacman trong MSYS2 sẽ không hoạt động.
2.2. Tự thân khởi nghiệp Bazel trên Windows
Mở shell MSYS2.
Thiết lập các biến môi trường sau:
BAZEL_VS
hoặcBAZEL_VC
(chúng không giống nhau): Đặt thành đường dẫn đến thư mục Visual Studio (BAZEL_VS) hoặc thư mục Visual C++ (BAZEL_VC). Thiết lập một trong các chế độ cài đặt này là đủ.BAZEL_SH
: Đường dẫn củabash.exe
MSYS2. Hãy xem lệnh trong các ví dụ bên dưới.Đừng đặt giá trị này thành
C:\Windows\System32\bash.exe
. (Bạn có tệp đó nếu đã cài đặt Hệ thống con Windows dành cho Linux.) Bazel không hỗ trợ phiên bảnbash.exe
này.PATH
: Thêm thư mục Python.JAVA_HOME
: Đặt thành thư mục JDK.
Ví dụ (sử dụng 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"
hoặc (sử dụng 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
vào thư mục bạn đã giải nén tệp lưu trữ phân phối.Chạy tập lệnh biên dịch:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
Kết quả biên dịch sẽ được đặt vào output/bazel.exe
. Đây là một tệp nhị phân Bazel độc lập, không có JDK được nhúng. Bạn có thể sao chép mã này ở bất cứ đâu hoặc sử dụng tại chỗ. Để thuận tiện, hãy sao chép tệp nhị phân này vào một thư mục trong PATH
.
Để tạo tệp nhị phân bazel.exe
theo cách có thể mô phỏng, hãy đặt SOURCE_DATE_EPOCH
trong bước "Chạy tập lệnh biên dịch".
Bạn không cần chạy Bazel từ shell MSYS2. Bạn có thể chạy Bazel trong Command Prompt (cmd.exe
) hoặc PowerShell.