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ố 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 ứng dụng bằng tệp nhị phân Bazel hiện có
Tạo tệp mà không cần tệp nhị phân Bazel hiện có (đã biết) phương thức khởi động.
Tạo Bazel bằng Bazel
Tóm tắt
Tải bản phát hành Bazel mới nhất trên trang phát hành GitHub hoặc với Bazelisk.
Tải các nguồn của Bazel xuống từ GitHub và trích xuất ở đâu đó. 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ư đối với quá trình tự khởi động (xem cho các hệ thống giống 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.exe
bật Windows)Tệp nhị phân thu được có giá trị
bazel-bin/src/bazel-dev
(hoặcbazel-bin\src\bazel-dev.exe
trên Windows). Bạn có thể sao chép thông tin này ở bất cứ đâu và sử dụng ngay mà không cần cài đặt thêm.
Dưới đây là hướng dẫn chi tiết.
Bước 1: Tải bản phát hành Bazel mới nhất
Mục tiêu: Cài đặt hoặc tải xuống phiên bản phát hành của Bazel. Đảm bảo bạn có thể chạy
bằng cách nhập bazel
vào 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 Tệp nhị phân Bazel. Bạn có thể cài đặt ứng dụng từ trình quản lý gói hoặc tải xuống từ GitHub. Hãy xem phần Cài đặt Bazel. (Hoặc bạn có thể tạo từ cào (bootstrap).)
Khắc phục sự cố:
Nếu bạn không chạy được Bazel bằng cách nhập
bazel
vào cửa sổ dòng lệnh:Có thể thư mục tệp nhị phân Bazel của bạn không có 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 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 làm cho tệp nhị phân này 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 thuộc với Git, thì chỉ cần git Sao chép https://github.com/bazelbuild/bazel
Nếu không thì:
Tải xuống nguồn mới nhất dưới dạng tệp zip.
Trích xuất nội dung ở nơi nào đó.
Ví dụ: tạo một thư mục
bazel-src
trong thư mục gốc và giải nén ở đó.
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 quá trình tự 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 giống Unix khác
Để biết hướng dẫn dành cho Windows, hãy xem bài viết Tạo 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 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 ra tệp nhị phân nhỏ hơn nhưng việc tạo tệp sẽ chậm hơn.Kết quả sẽ ở mức
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 về các hệ thống giống Unix, hãy xem Ubuntu Linux, macOS và các hệ thống giống Unix khác.
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.exe
).
Hướng dẫn:
Khởi động Command Prompt (Trình đơn Start > Run > "cmd.exe")
cd
vào thư mục 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 việc tạo tệp sẽ chậm hơn.Kết quả sẽ ở mức
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 ra, không có gì để cài đặt.
Kết quả của bước trước là tệp nhị phân Bazel độc lập. Bạn có thể sao chép nó vào bất kỳ thư mục nào và sử dụng ngay lập tức. (Sẽ hữu ích nếu thư mục đó ở PATH của bạn để có thể chạy "bazel" everywhere.)
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 (bản lưu trữ bản phân phối)
(Bước này là như nhau cho tất cả các nền tảng.)
Tải
bazel-<version>-dist.zip
xuống từ Ví dụ: GitHubbazel-0.28.1-dist.zip
.Lưu ý:
- Có một kho lưu trữ phân phối duy nhất, không phụ thuộc vào cấu 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 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 để tự khởi động Bazel. Bạn không thể sử dụng cây nguồn được sao chép từ GitHub. (Bản lưu trữ phân phối chứa các tệp nguồn được tạo bắt buộc cho quá trình tự khởi động và không thuộc một phần của của cây nguồn Git thông thường.)
Giải nén tệp lưu trữ phân phối vào đâu đó trên ổ đĩa.
Bạn nên xác minh chữ ký do Bazel tạo khoá phát hành 3D5919B448457EE0.
Bước 2a: Tự thân khởi nghiệp Bazel trên Ubuntu Linux, macOS và các hệ thống giống Unix khác
Để biết hướng dẫn dành cho Windows, hãy xem bài viết Bootstrap Bazel trên Windows.
2.1. Cài đặt điều kiện tiên quyết
Bash
zip, giải nén
Chuỗi công cụ bản dựng C++
JDK. Bạn phải chọn phiên bản 11.
Python. Phiên bản 2 và 3 được hỗ trợ, việc cài đặt một trong hai phiên bản này là đủ.
Ví dụ: trên Ubuntu Linux, bạn có thể cài đặt các yêu cầu này bằng cách sử dụng sau đây:
sudo apt-get install build-essential openjdk-11-jdk python zip unzip
2.2. Tự thân khởi nghiệp Bazel trên Unix
Mở cửa sổ shell hoặc Terminal.
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
.
Đầu ra đã biên dịch được đặt vào output/bazel
. Đây là một chương trình độc lập
Tệp nhị phân Bazel, không có JDK được nhúng. Bạn có thể sao chép thông tin 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ể tái tạo, bạn cũng đặt
SOURCE_DATE_EPOCH
trong "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 về các hệ thống giống Unix, hãy xem Khởi động Bazel trên Ubuntu Linux, macOS và các hệ thống giống Unix khác.
2.1. Cài đặt điều kiện tiên quyết
Các gói MSYS2 để nén 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ạn phải chọn phiên bản 11.
Python. Phiên bản 2 và 3 được hỗ trợ, việc cài đặt một trong hai phiên bản này là đủ. Bạn cần phiên bản gốc trên 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 đến Visual Studio Thư mục C++ (BAZEL_VC). Chỉ cần đặt một trong hai chế độ đó là đủ.BAZEL_SH
: Đường dẫn của MSYS2bash.exe
. Xem lệnh trong ví dụ dưới đây.Đừng đặt giá trị này thành
C:\Windows\System32\bash.exe
. (Bạn có tệp đó nếu bạn đã cài đặt Hệ thống phụ Windows dành cho Linux.) Bazel không hỗ trợ phiên bản này củabash.exe
.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/jdk1.8.0_112"
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/jdk1.8.0_112"
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
Đầu ra đã biên dịch được đặt vào output/bazel.exe
. Đây là một chương trình độc lập
Tệp nhị phân Bazel, không có JDK được nhúng. Bạn có thể sao chép thông tin 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 đang bật
PATH
của bạn.
Để tạo tệp nhị phân bazel.exe
theo cách có thể tái tạo, bạn cũng đặt
SOURCE_DATE_EPOCH
trong "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 từ
Command Prompt (cmd.exe
) hoặc PowerShell.