इस पेज पर, सोर्स से Bazel इंस्टॉल करने का तरीका बताया गया है. साथ ही, आम तौर पर होने वाली समस्याओं को हल करने के बारे में सलाह दी गई है.
सोर्स से Bazel बनाने के लिए, इनमें से कोई एक तरीका अपनाएं:
मौजूदा Bazel बाइनरी का इस्तेमाल करके इसे बनाएं
इसे मौजूदा Bazel बाइनरी के बिना बनाएं. इसे बूटस्ट्रैपिंग कहा जाता है.
Bazel का इस्तेमाल करके Bazel बनाना
खास जानकारी
GitHub के रिलीज़ पेज से या Bazelisk की मदद से, Bazel का नया वर्शन पाएं.
GitHub से Bazel के सोर्स डाउनलोड करें और उन्हें किसी जगह पर निकालें. इसके अलावा, https://github.com/bazelbuild/bazel से सोर्स ट्री को git क्लोन किया जा सकता है
बूटस्ट्रैप करने के लिए ज़रूरी शर्तें पूरी करें (Unix जैसे सिस्टम के लिए या Windows के लिए देखें)
Bazel का डेवलपमेंट वर्शन बनाने के लिए, Bazel:
bazel build //src:bazel-dev
(या Windows परbazel build //src:bazel-dev.exe
) का इस्तेमाल करेंबाइनरी फ़ाइल
bazel-bin/src/bazel-dev
(या Windows परbazel-bin\src\bazel-dev.exe
) में मौजूद होती है. इसे अपनी पसंद के मुताबिक कहीं भी कॉपी किया जा सकता है और इंस्टॉल किए बिना तुरंत इस्तेमाल किया जा सकता है.
इसके बारे में पूरी जानकारी नीचे दी गई है.
पहला चरण: Bazel की नई रिलीज़ पाना
लक्ष्य: Bazel का रिलीज़ वर्शन इंस्टॉल या डाउनलोड करना. पक्का करें कि टर्मिनल में bazel
टाइप करके, इसे चलाया जा सकता हो.
वजह: GitHub सोर्स ट्री से Bazel बनाने के लिए, आपके पास पहले से मौजूद Bazel बाइनरी होनी चाहिए. किसी पैकेज मैनेजर से इंस्टॉल किया जा सकता है या GitHub से डाउनलोड किया जा सकता है. Bazel इंस्टॉल करना देखें. (या शुरुआत से (बूटस्ट्रैप) बनाया जा सकता है.)
समस्या हल करना:
अगर टर्मिनल में
bazel
टाइप करके Bazel नहीं चल पा रहा है, तो:ऐसा हो सकता है कि आपके Bazel बाइनरी की डायरेक्ट्री, PATH में न हो.
यह कोई बड़ी समस्या नहीं है.
bazel
टाइप करने के बजाय, आपको पूरा पाथ टाइप करना होगा.ऐसा हो सकता है कि Bazel बाइनरी को
bazel
(Unix पर) याbazel.exe
(Windows पर) न कहा जाए.यह कोई बड़ी समस्या नहीं है. बाइनरी का नाम बदला जा सकता है या
bazel
के बजाय बाइनरी का नाम टाइप किया जा सकता है.हो सकता है कि बाइनरी को Unix पर चलाया न जा सके.
आपको
chmod +x /path/to/bazel
चलाकर, बाइनरी को एक्सीक्यूटेबल बनाना होगा.
दूसरा चरण: GitHub से Bazel के सोर्स डाउनलोड करना
अगर आपको Git के बारे में पता है, तो बस git clone https://github.com/bazelbuild/bazel का इस्तेमाल करें
अन्यथा:
नए सोर्स को zip फ़ाइल के तौर पर डाउनलोड करें.
कॉन्टेंट को किसी दूसरी जगह पर निकालें.
उदाहरण के लिए, अपनी होम डायरेक्ट्री में
bazel-src
डायरेक्ट्री बनाएं और वहां से डेटा निकालें.
तीसरा चरण: ज़रूरी शर्तें इंस्टॉल करना
बूटस्ट्रैप करने के लिए ज़रूरी शर्तें, जैसे कि JDK, C++ compiler, MSYS2 (अगर Windows पर बिल्ड किया जा रहा है) वगैरह इंस्टॉल करें.
चौथा चरण: Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम पर Bazel बनाना
Windows के लिए निर्देशों के लिए, Windows पर Bazel बनाना लेख पढ़ें.
लक्ष्य: कस्टम Bazel बाइनरी (bazel-bin/src/bazel-dev
) बनाने के लिए, Bazel चलाएं.
निर्देश:
Bash टर्मिनल शुरू करना
cd
को उस डायरेक्ट्री में डालें जहां आपने Bazel के सोर्स निकाले (या क्लोन किए) हैं.उदाहरण के लिए, अगर आपने सोर्स को अपनी होम डायरेक्ट्री में निकाला है, तो यह चलाएं:
cd ~/bazel-src
सोर्स से Bazel बनाएं:
bazel build //src:bazel-dev
इसके अलावा, छोटी बाइनरी पाने के लिए
bazel build //src:bazel --compilation_mode=opt
को चलाया जा सकता है. हालांकि, इसे बिल्ड करने में ज़्यादा समय लगता है.बाइनरी के लिए Bazel वर्शन को एम्बेड करने के लिए,
--stamp --embed_label=X.Y.Z
फ़्लैग के साथ बिल्ड किया जा सकता है, ताकिbazel --version
दिए गए वर्शन को आउटपुट कर सके.आउटपुट
bazel-bin/src/bazel-dev
(याbazel-bin/src/bazel
) पर होगा.
चौथा चरण: Windows पर Bazel बनाना
यूनिक्स जैसे सिस्टम के लिए निर्देश पाने के लिए, Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम लेख पढ़ें.
लक्ष्य: कस्टम Bazel बाइनरी (bazel-bin\src\bazel-dev.exe
) बनाने के लिए, Bazel चलाएं.
निर्देश:
Command Prompt खोलें (Start मेन्यू > Run > "cmd.exe")
cd
को उस डायरेक्ट्री में डालें जहां आपने Bazel के सोर्स निकाले हैं या क्लोन किए हैं.उदाहरण के लिए, अगर आपने सोर्स को अपनी होम डायरेक्ट्री में निकाला है, तो यह चलाएं:
cd %USERPROFILE%\bazel-src
सोर्स से Bazel बनाएं:
bazel build //src:bazel-dev.exe
इसके अलावा, छोटी बाइनरी पाने के लिए
bazel build //src:bazel.exe --compilation_mode=opt
चलाया जा सकता है. हालांकि, इसे बिल्ड करने में ज़्यादा समय लगता है.बाइनरी के लिए Bazel वर्शन को एम्बेड करने के लिए,
--stamp --embed_label=X.Y.Z
फ़्लैग के साथ बिल्ड किया जा सकता है, ताकिbazel --version
दिए गए वर्शन को आउटपुट कर सके.आउटपुट
bazel-bin\src\bazel-dev.exe
(याbazel-bin\src\bazel.exe
) पर होगा.
पांचवां चरण: बने हुए बाइनरी को इंस्टॉल करना
दरअसल, आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.
पिछले चरण का आउटपुट, एक ऐसा Bazel बाइनरी होता है जिसमें सभी चीज़ें मौजूद होती हैं. इसे किसी भी डायरेक्ट्री में कॉपी करके तुरंत इस्तेमाल किया जा सकता है. (अगर वह डायरेक्ट्री आपके PATH में है, तो यह काम का होता है, ताकि आप "bazel" को कहीं भी चला सकें.)
Bazel को नए सिरे से बनाना (बूटस्ट्रैप करना)
किसी मौजूदा Bazel बाइनरी का इस्तेमाल किए बिना भी, Bazel को नए सिरे से बनाया जा सकता है.
पहला चरण: Bazel के सोर्स (डिस्ट्रिब्यूशन संग्रह) डाउनलोड करना
(यह चरण सभी प्लैटफ़ॉर्म के लिए एक जैसा है.)
उदाहरण के लिए,
bazel-0.28.1-dist.zip
को GitHub से डाउनलोड करें.bazel-<version>-dist.zip
ध्यान दें:
- एक ही, आर्किटेक्चर से स्वतंत्र डिस्ट्रिब्यूशन संग्रह होना चाहिए. इसमें आर्किटेक्चर या ओएस के हिसाब से डिस्ट्रिब्यूशन के संग्रह नहीं होते.
- ये सोर्स, GitHub के सोर्स ट्री से अलग होते हैं. Bazel को बूटस्ट्रैप करने के लिए, आपको डिस्ट्रिब्यूशन संग्रह का इस्तेमाल करना होगा. GitHub से क्लोन किए गए सोर्स ट्री का इस्तेमाल नहीं किया जा सकता. (डिस्ट्रिब्यूशन संग्रह में जनरेट की गई सोर्स फ़ाइलें होती हैं, जो बूटस्ट्रैपिंग के लिए ज़रूरी होती हैं और सामान्य Git सोर्स ट्री का हिस्सा नहीं होती हैं.)
डिस्क पर कहीं भी डिस्ट्रिब्यूशन संग्रह को अनपैक करें.
आपको Bazel की रिलीज़ कुंजी 3D5919B448457EE0 से किए गए हस्ताक्षर की पुष्टि करनी होगी.
दूसरा चरण: Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर Bazel को बूटस्ट्रैप करना
Windows के लिए निर्देश पाने के लिए, Windows पर Bazel को बूटस्ट्रैप करना लेख पढ़ें.
2.1. ज़रूरी शर्तें इंस्टॉल करना
Bash
zip, unzip
C++ बिल्ड टूलचेन
JDK. वर्शन 21 ज़रूरी है.
Python. इसके वर्शन 2 और 3 काम करते हैं. इनमें से किसी एक को इंस्टॉल करना ही काफ़ी है.
उदाहरण के लिए, Ubuntu Linux पर ये ज़रूरी शर्तें, नीचे दिए गए कमांड का इस्तेमाल करके इंस्टॉल की जा सकती हैं:
sudo apt-get install build-essential openjdk-21-jdk python zip unzip
2.2. Unix पर Bazel को बूटस्ट्रैप करना
कोई शेल या Terminal विंडो खोलें.
cd
उस डायरेक्ट्री में जाएं जहां आपने डिस्ट्रिब्यूशन का संग्रह अनपैक किया है.कंपाइलेशन स्क्रिप्ट चलाएं:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh
.
कंपाइल किए गए आउटपुट को output/bazel
में रखा जाता है. यह एक ऐसी बाइनरी है जिसमें JDK एम्बेड नहीं किया गया है. इसे कहीं भी कॉपी किया जा सकता है या इसे अपनी जगह पर इस्तेमाल किया जा सकता है. आसानी के लिए, इस बाइनरी को अपनी PATH
(जैसे, Linux पर /usr/local/bin
) डायरेक्ट्री में कॉपी करें.
bazel
बाइनरी को फिर से बनाया जा सकने वाले तरीके से बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" चरण में भी SOURCE_DATE_EPOCH
सेट करें.
दूसरा चरण: Windows पर Bazel को बूटस्ट्रैप करना
यूनिक्स जैसे सिस्टम के लिए निर्देश पाने के लिए, Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम पर Bazel को बूटस्ट्रैप करना लेख पढ़ें.
2.1. ज़रूरी शर्तें इंस्टॉल करना
ZIP और अनज़िप करने के लिए MSYS2 पैकेज. MSYS2 शेल में यह कमांड चलाएं:
pacman -S zip unzip patch
Visual C++ कंपाइलर. Visual C++ कंपाइलर को Visual Studio 2015 या उसके बाद के वर्शन के साथ इंस्टॉल करें. इसके अलावा, Visual Studio 2017 के लिए सबसे नए Build Tools इंस्टॉल करके भी ऐसा किया जा सकता है.
JDK. वर्शन 21 ज़रूरी है.
Python. इसका दूसरा और तीसरा वर्शन काम करता है. इनमें से किसी एक को इंस्टॉल करना ही काफ़ी है. आपके पास Windows के लिए उपलब्ध वर्शन होना चाहिए. इसे https://www.python.org से डाउनलोड किया जा सकता है. MSYS2 में pacman की मदद से इंस्टॉल किए गए वर्शन काम नहीं करेंगे.
2.2. Windows पर Bazel को बूटस्ट्रैप करना
MSYS2 शेल खोलें.
ये एनवायरमेंट वैरिएबल सेट करें:
BAZEL_VS
याBAZEL_VC
(ये एक नहीं हैं): Visual Studio डायरेक्ट्री (BAZEL_VS) या Visual C++ डायरेक्ट्री (BAZEL_VC) के पाथ पर सेट करें. इनमें से किसी एक को सेट करना ही काफ़ी है.BAZEL_SH
: MSYS2 का पाथbash.exe
. नीचे दिए गए उदाहरणों में कमांड देखें.इसे
C:\Windows\System32\bash.exe
पर सेट न करें. (अगर आपने Windows Subsystem for 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/jdk-21"
या (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
उस डायरेक्ट्री में जाएं जहां आपने डिस्ट्रिब्यूशन का संग्रह अनपैक किया है.कंपाइलेशन स्क्रिप्ट चलाएं:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
कंपाइल किए गए आउटपुट को output/bazel.exe
में रखा जाता है. यह एक ऐसी बाइनरी है जिसमें JDK एम्बेड नहीं किया गया है. इसे कहीं भी कॉपी किया जा सकता है या इसे अपनी जगह पर इस्तेमाल किया जा सकता है. आसानी के लिए, इस बाइनरी को PATH
पर मौजूद किसी डायरेक्ट्री में कॉपी करें.
bazel.exe
बाइनरी को फिर से बनाया जा सकने वाले तरीके से बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" चरण में भी SOURCE_DATE_EPOCH
सेट करें.
आपको MSYS2 शेल से Bazel चलाने की ज़रूरत नहीं है. Bazel को कमांड प्रॉम्प्ट (cmd.exe
) या PowerShell से चलाया जा सकता है.