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ố đối với các vấn đề thường gặp.
Để tạo Bazel từ nguồn, bạn có thể thực hiện một trong những cách sau:
Tạo Bazel bằng Bazel
Tóm tắt
Tải bản phát hành Bazel mới nhất xuống từ trang phát hành trên GitHub hoặc bằng Bazelisk.
Tải các nguồn của Bazel xuống từ GitHub và giải nén ra một thư mục bất kỳ. Ngoài ra, bạn có thể dùng lệnh git clone để 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 giống như đối với việc khởi động (xem phần dành cho các hệ thống tương tự Unix hoặc dành cho Windows)
Tạo bản dựng phát triển của Bazel bằng Bazel:
bazel build //src:bazel-dev(hoặcbazel build //src:bazel-dev.exetrên Windows)Tệp nhị phân kết quả nằm ở
bazel-bin/src/bazel-dev(hoặcbazel-bin\src\bazel-dev.exetrên Windows). Bạn có thể sao chép tệp này đến bất cứ đâu bạn muốn và sử dụng ngay mà không cần cài đặt thêm.
Hướng dẫn chi tiết được trình bày bên dưới.
Bước 1: Tải bản phát hành Bazel mới nhất xuống
Mục tiêu: Cài đặt hoặc tải phiên bản phát hành của Bazel xuống. Đảm bảo bạn có thể chạy
phiên bản này bằng cách nhập bazel trong một cửa sổ 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 đã tồn tại trước đó. Bạn có thể cài đặt một tệp nhị phân từ trình quản lý gói hoặc tải một tệp nhị phân xuống từ GitHub. Xem phần 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
bazeltrong một cửa sổ dòng lệnh:Có thể thư mục của tệp nhị phân Bazel 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ể tệp nhị phân Bazel không được gọi là
bazel(trên Unix) 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 Unix).
Bạn phải làm cho 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 các nguồn của Bazel xuống từ GitHub
Nếu bạn đã quen với Git, thì chỉ cần chạy lệnh git clone https://github.com/bazelbuild/bazel
Nếu không thì:
Giải nén nội dung ra một tệp bất kỳ.
Ví dụ: tạo thư mục
bazel-srctrong thư mục chính rồi giải nén vào đó.
Bước 3: Cài đặt các điều kiện tiên quyết
Cài đặt các điều kiện tiên quyết giống như đối với việc khởi động (xem bên dưới) – JDK, C++ trình biên dịch, MSYS2 (nếu bạn đang tạo trên Windows), v.v.
Bước 4a: Tạo Bazel trên Ubuntu Linux, macOS và các hệ thống tương tự Unix khác
Để biết hướng dẫn cho Windows, hãy xem phần Tạo Bazel trên Windows.
Mục tiêu: Chạy Bazel để tạo tệp nhị phân Bazel tuỳ chỉnh (bazel-bin/src/bazel-dev).
Hướng dẫn:
Khởi động một cửa sổ dòng lệnh Bash
cdvào thư mục mà bạn đã giải nén (hoặc sao chép) các nguồn của Bazel.Ví dụ: nếu bạn đã giải nén các nguồn trong thư mục chính, hãy chạy:
cd ~/bazel-srcTạo Bazel từ nguồn:
bazel build //src:bazel-devNgoà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 quá trình tạo sẽ chậm hơn.Bạn có thể tạo bằng cờ
--stamp --embed_label=X.Y.Zđể nhúng phiên bản Bazel cho tệp nhị phân, sao chobazel --versionxuất ra phiên bản đã cho.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 tương tự Unix, hãy xem phần 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 Dấu nhắc lệnh (Start Menu > Run > "cmd.exe")
cdvào thư mục mà bạn đã giải nén (hoặc sao chép) các nguồn của Bazel.Ví dụ: nếu bạn đã giải nén các nguồn trong thư mục chính, hãy chạy:
cd %USERPROFILE%\bazel-srcTạ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 quá trình tạo sẽ chậm hơn.Bạn có thể tạo bằng cờ
--stamp --embed_label=X.Y.Zđể nhúng phiên bản Bazel cho tệp nhị phân, sao chobazel --versionxuất ra phiên bản đã cho.Kết quả 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
Trên thực tế, bạn không cần cài đặt gì cả.
Kết quả 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. (Điều này rất hữu ích nếu thư mục đó nằm trên PATH để bạn có thể chạy "bazel" ở mọi nơi.)
Tạo Bazel từ đầu (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 (lưu trữ phân phối)
(Bước này giống nhau đối với tất cả các nền tảng.)
Tải
bazel-<version>-dist.zipxuống từ GitHub, ví dụ:bazel-0.28.1-dist.zip.Lưu ý:
- Có một kho lưu trữ phân phối duy nhất, độc lập với kiến trúc. Không có kho lưu trữ phân phối dành riêng cho kiến trúc hoặc dành riêng cho hệ điều hành.
- Các nguồn này không giống với cây nguồn GitHub. Bạn phải sử dụng kho lưu trữ phân phối để khởi động Bazel. Bạn không thể sử dụng cây nguồn được sao chép từ GitHub. Kho lưu trữ phân phối chứa các tệp nguồn được tạo cần thiết cho việc khởi động và không thuộc cây nguồn Git thông thường.
Giải nén kho lưu trữ phân phối ở một vị trí bất kỳ trên ổ đĩa.
Bạn nên xác minh chữ ký do khoá phát hành của Bazel 3D5919B448457EE0 tạo.
Bước 2a: 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 cho Windows, hãy xem phần Khởi động Bazel trên Windows.
2.1. Cài đặt các điều kiện tiên quyết
Bash
zip, unzip
Chuỗi công cụ tạo C++
JDK. Yêu cầu phiên bản 21.
Python. Yêu cầu phiên bản 3.
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 python3 zip unzip
2.2. Khởi động Bazel trên Unix
Mở một cửa sổ dòng lệnh hoặc cửa sổ Terminal.
cdđến thư mục mà bạn đã giải nén kho 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 được đặt vào output/bazel. Đây là một tệp nhị phân Bazel độc lập, không có JDK nhúng. Bạn có thể sao chép tệp 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 nằm 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ể tái tạo, hãy đặt
SOURCE_DATE_EPOCH
trong bước "Chạy tập lệnh biên dịch".
Bước 2b: Khởi động Bazel trên Windows
Để biết hướng dẫn cho các hệ thống tương tự Unix, hãy xem phần Khởi động Bazel trên Ubuntu Linux, macOS và các hệ thống tương tự Unix khác.
2.1. Cài đặt các điều kiện tiên quyết
Các gói MSYS2 cho zip và unzip. Chạy lệnh sau trong giao diện dòng lệnh MSYS2:
pacman -S zip unzip patchTrình biên dịch Visual C++. Cài đặt trình biên dịch Visual C++ dưới dạng một phần của Visual Studio 2015 trở lên hoặc bằng cách cài đặt Build Tools cho Visual Studio 2017 mới nhất.
JDK. Yêu cầu phiên bản 21.
Python. Hỗ trợ phiên bản 2 và 3, bạn chỉ cần cài đặt một trong hai phiên bản này là đủ. Bạn cần 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 thông qua pacman trong MSYS2 sẽ không hoạt động.
2.2. Khởi động Bazel trên Windows
Mở giao diện dòng lệnh MSYS2.
Thiết lập các biến môi trường sau:
BAZEL_VShoặ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 đến thư mục Visual C++ (BAZEL_VC). Bạn chỉ cần thiết lập một trong hai biến này.BAZEL_SH: Đường dẫn của MSYS2bash.exe. Xem lệnh trong các ví dụ bên dưới.Không đặt biến 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.exenà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đến thư mục mà bạn đã giải nén kho 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 được đặt vào output/bazel.exe. Đây là một tệp nhị phân Bazel độc lập, không có JDK nhúng. Bạn có thể sao chép tệp 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 nằm trên
PATH.
Để tạo tệp nhị phân bazel.exe theo cách có thể tái tạo, 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ừ giao diện dòng lệnh MSYS2. Bạn có thể chạy Bazel từ Dấu nhắc lệnh (cmd.exe) hoặc PowerShell.