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