במאמר הזה נסביר איך להתקין את Bazel מהמקור ומספק טיפים לפתרון בעיות נפוצות.
כדי ליצור 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's מ-GitHub
אם אתם מכירים את Git, פשוט שכפול Git https://github.com/bazelbuild/bazel
אחרת:
מורידים את המקורות העדכניים ביותר כקובץ ZIP.
יש לחלץ את התוכן במקום כלשהו.
לדוגמה, אפשר ליצור ספריית
bazel-src
בספריית הבית ולצאת משם.
שלב 3: מתקינים דרישות מוקדמות
מתקינים את אותן הדרישות שחלות על תוכנת אתחול (ראו בהמשך) -- JDK, C++ מהדר, MSYS2 (אם אתם בונים ב-Windows) וכו'.
שלב 4א: בונים את Bazel ב-Ubuntu Linux, ב-macOS ובמערכות אחרות דמויי Unix
הוראות ל-Windows זמינות במאמר Build Bazel ב-Windows.
מטרה: להריץ Bazel לבנות בינארי של Bazel (bazel-bin/src/bazel-dev
).
הוראות:
הפעלת טרמינל באש
cd
לספרייה שבה חילוץ (או שכפול) את המקורות של Bazel&33.לדוגמה, אם חלצתם את המקורות מספריית הבית שלכם, יש להריץ:
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ב: Build Bazel ב-Windows
במאמר Ubuntu Linux , macOS ומערכות אחרות דמויי Unix תוכלו למצוא הוראות למערכות כמו Unix.
מטרה: להריץ Bazel לבנות בינארי של Bazel
(bazel-bin\src\bazel-dev.exe
).
הוראות:
התחל שורת פקודה (תפריט התחלה > הרצה > "cmd.exe")
cd
לספרייה שבה חילוץ (או שכפול) את המקורות של Bazel&33.לדוגמה, אם חלצתם את המקורות מספריית הבית שלכם, יש להריץ:
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.)
פותחים את ארכיון ההפצה במקום כלשהו בדיסק.
עליכם לאמת את החתימה שנוצרה על ידי Bazel's מפתח השקה 3D5919B448457EE0.
שלב 2א: Bootstrap Bazel ב-Ubuntu Linux, ב-macOS ובמערכות דומות אחרות
להוראות בנוגע ל-Windows, יש לעיין בBottstrap Bazel ב-Windows.
2.1. התקנת הדרישות המוקדמות
Bash
zip, zip
כלי C++ ליצירת כלי לבנות
JDK. נדרשת גרסה 11.
Python. יש תמיכה בגרסאות 2 ו-3, והתקנה של אחת מהן מספיקה.
לדוגמה, ב-Ubuntu Linux תוכלו להתקין את הדרישות האלה באמצעות הפקודה הבאה:
sudo apt-get install build-essential openjdk-11-jdk python zip unzip
2.2. Baotstrap Bazel ב-Unix
פותחים מעטפת או חלון ב-Terminal.
cd
לספרייה שבה פתחת את ארכיון ההפצה.מריצים את סקריפט האוסף:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh
.
הפלט המוצב נמצא בoutput/bazel
. זהו קובץ בינארי של Bazal עצמאי, ללא JDK מוטמע. אפשר להעתיק אותו מכל מקום או להשתמש בו במקום. מטעמי נוחות, יש להעתיק את הקובץ הבינארי הזה לספרייה שנמצאת ב-PATH
שלך (למשל, /usr/local/bin
ב-Linux).
כדי ליצור את הקובץ הבינארי של bazel
בדרך שניתן לשחזר, צריך להגדיר גם
SOURCE_DATE_EPOCH
בשלב "הפעלת סקריפט האוסף".
שלב 2ב: Bootstrap Bazel ב-Windows
2.1. התקנת הדרישות המוקדמות
חבילות MSYS2 למערכת ZIP וביטול הדחיסה. מריצים את הפקודה הבאה במעטפת MSYS2:
pacman -S zip unzip patch
המהדר החזותי +C+. מתקינים את ה-Visual C++ מהלך המוצר כחלק מ-Visual Studio לשנת 2015 ואילך, או מתקינים את הגרסה האחרונה של Build Tools for Visual Studio 2017.
JDK. נדרשת גרסה 11.
Python. יש תמיכה בגרסאות 2 ו-3, והתקנה של אחת מהן מספיקה. יש צורך בגרסה שמותאמת ל-Windows (בכתובת https://www.python.org). גרסאות שהותקנו דרך pacman ב-MSYS2 לא יפעלו.
2.2. Bootstrap Bazel ב-Windows
פותחים את המעטפת של MSYS2.
מגדירים את משתני הסביבה הבאים:
- המדיניות
BAZEL_VS
אוBAZEL_VC
(שהתכונות שלהן לא זהות): יש להגדיר את הנתיב אל הספרייה Visual Studio (BAZEL_VS) או אל ספריית C++ (BAZEL_VC). ההגדרה של אחד מהם מספיקה. BAZEL_SH
: נתיב של MSYS2bash.exe
. ניתן לראות את הפקודה בדוגמאות הבאות.אין להגדיר את הערך הזה ל-
C:\Windows\System32\bash.exe
. (קובץ זה נמצא ברשותך, אם התקנת את Windows Subsystem עבור Linux). Bazel לא תומכת בגרסה הזו שלbash.exe
.PATH
: הוספת הספרייה ב-Python.JAVA_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
. זהו קובץ בינארי של Bazal עצמאי, ללא JDK מוטמע. אפשר להעתיק אותו מכל מקום או להשתמש בו במקום. לנוחיותכם, העתיקו את הקובץ הבינארי הזה לספרייה שנמצאת בPATH
שלכם.
כדי ליצור את הקובץ הבינארי של bazel.exe
בדרך שניתן לשחזר, צריך להגדיר גם
SOURCE_DATE_EPOCH
בשלב "הפעלת סקריפט האוסף".
אין צורך להריץ את Bazel מהמעטפת MSYS2. ניתן להריץ את Bazel דרך שורת הפקודה (cmd.exe
) או PowerShell.