इस पेज पर बताया गया है कि सोर्स से Basel को कैसे इंस्टॉल किया जाता है. साथ ही, इसमें सामान्य समस्याओं को हल करने से जुड़ी सलाह दी गई है.
स्रोत से Baज़ल बनाने के लिए, आप इनमें से एक काम कर सकते हैं:
मौजूदा Bazel बाइनरी का इस्तेमाल करके इसे बनाएं
इसे मौजूदा Bazel बाइनरी के बिना बनाएं. इसे बूटस्ट्रैपिंग कहा जाता है.
Bazel का इस्तेमाल करके Bazel बनाना
खास जानकारी
GitHub के रिलीज़ पेज या Bazelisk से, Basel की नई रिलीज़ पाएं.
GitHub से Baज़र के सोर्स डाउनलोड करें और कहीं से भी एक्सट्रैक्ट करें. इसके अलावा, आपके पास https://github.com/batzbuild/ba इमारतों से सोर्स ट्री का क्लोन बनाने का विकल्प भी है
बूटस्ट्रैप करने के लिए ज़रूरी शर्तें पूरी करें (Unix जैसे सिस्टम के लिए या Windows के लिए देखें)
Baज़ल का इस्तेमाल करके, Basel का डेवलपमेंट बिल्ड बनाएं:
bazel build //src:bazel-dev
(या Windows परbazel build //src:bazel-dev.exe
)नतीजे के तौर पर, बाइनरी
bazel-bin/src/bazel-dev
पर है (या Windows परbazel-bin\src\bazel-dev.exe
). इसे अपनी पसंद के हिसाब से कॉपी किया जा सकता है और इसे इंस्टॉल किए बिना तुरंत इस्तेमाल किया जा सकता है.
इसके बारे में ज़्यादा जानकारी के लिए नीचे दिया गया है.
पहला चरण: Basel का नया वर्शन डाउनलोड करना
लक्ष्य: Basel का रिलीज़ वर्शन इंस्टॉल या डाउनलोड करें. पक्का करें कि टर्मिनल में bazel
टाइप करके, इसे चलाया जा सकता हो.
वजह: GitHub सोर्स ट्री से Bazel बनाने के लिए, आपके पास पहले से मौजूद Bazel बाइनरी होनी चाहिए. आप पैकेज मैनेजर से एक पैकेज मैनेजर इंस्टॉल कर सकते हैं या GitHub से डाउनलोड कर सकते हैं. Bazel इंस्टॉल करना देखें. (या आप स्क्रैच (बूटस्ट्रैप) से वीडियो बना सकते हैं.)
समस्या हल करना:
अगर आप टर्मिनल में
bazel
टाइप करके Baज़ल को नहीं चला पा रहे हैं:हो सकता है कि आपकी Baज़ेन बाइनरी की डायरेक्ट्री, PATH पर नहीं हो.
यह कोई बड़ी समस्या नहीं है.
bazel
लिखने के बजाय, आपको पूरा पाथ लिखना होगा.हो सकता है कि खुद बेज़ल बाइनरी को
bazel
(Unixes पर) याbazel.exe
(Windows पर) नहीं कहा जाता है.यह कोई बड़ी समस्या नहीं है. बाइनरी का नाम बदला जा सकता है या
bazel
के बजाय बाइनरी का नाम टाइप किया जा सकता है.शायद बाइनरी फ़ाइल एक्ज़ीक्यूटेबल नहीं है (यूनिक्स पर).
आपको
chmod +x /path/to/bazel
चलाकर बाइनरी को एक्ज़ीक्यूटेबल बनाना होगा.
दूसरा चरण: GitHub से Bazel के सोर्स डाउनलोड करना
अगर आपको Git के बारे में जानकारी है, तो सिर्फ़ git clone के लिए https://github.com/bazubuild/ba सुझावों का इस्तेमाल करें
अन्यथा:
नए सोर्स को zip फ़ाइल के तौर पर डाउनलोड करें.
कॉन्टेंट को कहीं एक्सट्रैक्ट करें.
उदाहरण के लिए, अपनी होम डायरेक्ट्री में
bazel-src
डायरेक्ट्री बनाएं और वहां से डेटा निकालें.
तीसरा चरण: इंस्टॉल करने से जुड़ी ज़रूरी शर्तें
बूस्टरैप करने के लिए ज़रूरी शर्तें, जैसे कि JDK, C++ के कंपाइलर, MSYS2 (अगर Windows पर बिल्ड किया जा रहा है) वगैरह इंस्टॉल करें.
चौथा चरण: Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम पर Bazel बनाना
Windows के लिए निर्देशों के लिए, Windows पर Bazel बनाना लेख पढ़ें.
लक्ष्य: अपनी ज़रूरत के हिसाब से Basel बाइनरी (bazel-bin/src/bazel-dev
) बनाने के लिए Basel को चलाएं.
निर्देश:
Bash टर्मिनल शुरू करें
cd
को उस डायरेक्ट्री में सेव करें जहां से आपने Basel के सोर्स एक्सट्रैक्ट या क्लोन किए थे.उदाहरण के लिए, अगर आपने सोर्स को अपनी होम डायरेक्ट्री में एक्सट्रैक्ट किया है, तो इसे चलाएं:
cd ~/bazel-src
स्रोत से बेज़ल बनाएं:
bazel build //src:bazel-dev
इसके अलावा, आपके पास
bazel build //src:bazel --compilation_mode=opt
को चलाकर छोटी बाइनरी बनाने का विकल्प है. हालांकि, इसे बनाना धीमा है.आउटपुट
bazel-bin/src/bazel-dev
(याbazel-bin/src/bazel
) पर होगा.
चौथा चरण: Windows पर Bazel बनाना
Unix-जैसे सिस्टम के निर्देशों के लिए Ubuntu Linux, macOS, और Unix-जैसे दूसरे सिस्टम देखें.
लक्ष्य: कस्टम Bazel बाइनरी (bazel-bin\src\bazel-dev.exe
) बनाने के लिए, Bazel चलाएं.
निर्देश:
Command Prompt खोलें (Start मेन्यू > Run > "cmd.exe")
cd
को उस डायरेक्ट्री में डालें जहां आपने Bazel के सोर्स निकाले (या क्लोन किए) हैं.उदाहरण के लिए, अगर आपने सोर्स को अपनी होम डायरेक्ट्री में एक्सट्रैक्ट किया है, तो इसे चलाएं:
cd %USERPROFILE%\bazel-src
स्रोत से बेज़ल बनाएं:
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 को नए सिरे से बनाया जा सकता है.
पहला चरण: Basel के सोर्स (डिस्ट्रिब्यूशन आर्काइव) डाउनलोड करना
(यह चरण सभी प्लैटफ़ॉर्म के लिए एक जैसा है.)
GitHub से
bazel-<version>-dist.zip
डाउनलोड करें, उदाहरण के लिए,bazel-0.28.1-dist.zip
.ध्यान दें:
- यहां एक एकल, आर्किटेक्चर-इंडिपेंडेंट डिस्ट्रिब्यूशन संग्रह मौजूद है. कोई भी आर्किटेक्चर-विशिष्ट या OS-विशिष्ट डिस्ट्रिब्यूशन संग्रह नहीं हैं.
- ये सोर्स, GitHub के सोर्स ट्री से अलग होते हैं. बेज़ल को बूटस्ट्रैप करने के लिए आपको डिस्ट्रिब्यूशन संग्रह का इस्तेमाल करना होगा. GitHub से क्लोन किए गए सोर्स ट्री का इस्तेमाल नहीं किया जा सकता. (डिस्ट्रिब्यूशन संग्रह में जनरेट की गई ऐसी सोर्स फ़ाइलें होती हैं जो बूटस्ट्रैपिंग के लिए ज़रूरी होती हैं. साथ ही, ये सामान्य Git सोर्स ट्री का हिस्सा नहीं होती हैं.)
डिस्ट्रिब्यूशन संग्रह को डिस्क पर कहीं भी अनपैक करें.
आपको बेज़ेल की रिलीज़ कुंजी 3D5919B448457EE0 से किए गए हस्ताक्षर की पुष्टि करनी होगी.
दूसरा चरण: Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर Bazel को बूटस्ट्रैप करना
Windows के लिए निर्देश पाने के लिए, Windows पर Bazel को बूटस्ट्रैप करना लेख पढ़ें.
2.1. ज़रूरी शर्तें इंस्टॉल करना
Bash
ज़िप, अनज़िप
C++ बिल्ड टूलचेन
जेडीके. वर्शन 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. ज़रूरी शर्तें इंस्टॉल करना
ज़िप और अनज़िप के लिए MSYS2 पैकेज. MSYS2 शेल में निम्न कमांड चलाएं:
pacman -S zip unzip patch
विज़ुअल C++ कंपाइलर. विज़ुअल C++ कंपाइलर को Visual Studio 2015 या उसके बाद के हिस्से के तौर पर इंस्टॉल करें या फिर Visual Studio 2017 के लिए बिल्ड टूल का नया वर्शन इंस्टॉल करके इंस्टॉल करें.
जेडीके. वर्शन 21 ज़रूरी है.
Python. वर्शन 2 और 3 समर्थित हैं, उनमें से एक को इंस्टॉल करना काफ़ी है. आपके पास Windows का नेटिव वर्शन होना चाहिए (https://www.python.org से डाउनलोड किया जा सकता है). MSYS2 में पैकमैन के ज़रिए इंस्टॉल किए गए वर्शन काम नहीं करेंगे.
2.2. Windows पर Bazel को बूटस्ट्रैप करना
MSYS2 शेल खोलें.
इन एनवायरमेंट वैरिएबल को सेट करें:
BAZEL_VS
याBAZEL_VC
(ये एक नहीं हैं): Visual Studio डायरेक्ट्री (BAZEL_VS) या Visual C++ डायरेक्ट्री (BAZEL_VC) के पाथ पर सेट करें. इनमें से किसी एक को सेट करना ही काफ़ी है.BAZEL_SH
: MSYS2bash.exe
का पाथ. नीचे दिए गए उदाहरणों में, कमांड देखें.इसे
C:\Windows\System32\bash.exe
पर सेट न करें. (अगर आपने Windows Subsystem for Linux इंस्टॉल किया है, तो आपके पास वह फ़ाइल होगी.) Basel,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 शेल से बेज़ल चलाने की ज़रूरत नहीं है. आपके पास Command Prompt (cmd.exe
) या PowerShell से Basel को चलाने का विकल्प है.