इस पेज पर, सोर्स से Bazel इंस्टॉल करने का तरीका बताया गया है. साथ ही, आम तौर पर होने वाली समस्याओं को हल करने के बारे में सलाह दी गई है.
सोर्स से Bazel बनाने के लिए, इनमें से कोई एक तरीका अपनाएं:
मौजूदा Bazel बाइनरी का इस्तेमाल करके इसे बनाएं
इसे मौजूदा Bazel बाइनरी के बिना बनाएं. इसे बूटस्ट्रैपिंग कहा जाता है.
Basel का इस्तेमाल करके बेज़ल बनाएं
खास जानकारी
GitHub के रिलीज़ पेज से या Bazelisk की मदद से, Bazel का नया वर्शन पाएं.
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
) में मौजूद होती है. इसे अपनी पसंद के मुताबिक कहीं भी कॉपी किया जा सकता है और इंस्टॉल किए बिना तुरंत इस्तेमाल किया जा सकता है.
इसके बारे में पूरी जानकारी नीचे दी गई है.
पहला चरण: Bazel की नई रिलीज़ पाना
लक्ष्य: Basel का रिलीज़ वर्शन इंस्टॉल या डाउनलोड करें. पक्का करें कि टर्मिनल में bazel
टाइप करके, इसे चलाया जा सकता हो.
वजह: GitHub सोर्स ट्री से Bazel बनाने के लिए, आपके पास पहले से मौजूद Bazel बाइनरी होनी चाहिए. किसी पैकेज मैनेजर से इंस्टॉल किया जा सकता है या GitHub से डाउनलोड किया जा सकता है. Bazel इंस्टॉल करना देखें. (या शुरुआत से (बूटस्ट्रैप) बनाया जा सकता है.)
समस्या का हल:
अगर टर्मिनल में
bazel
टाइप करके Bazel नहीं चल पा रहा है, तो:ऐसा हो सकता है कि आपके Bazel बाइनरी की डायरेक्ट्री, PATH में न हो.
यह कोई बड़ी समस्या नहीं है.
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
डायरेक्ट्री बनाएं और वहां से डेटा निकालें.
तीसरा चरण: इंस्टॉल करने से जुड़ी ज़रूरी शर्तें
बूस्टरैप करने के लिए ज़रूरी शर्तें, जैसे कि JDK, C++ के कंपाइलर, MSYS2 (अगर Windows पर बिल्ड किया जा रहा है) वगैरह इंस्टॉल करें.
चौथा चरण: Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम पर Bazel बनाना
Windows के लिए निर्देशों के लिए, Windows पर Bazel बनाना लेख पढ़ें.
लक्ष्य: अपनी ज़रूरत के हिसाब से Basel बाइनरी (bazel-bin/src/bazel-dev
) बनाने के लिए Basel को चलाएं.
निर्देश:
Bash टर्मिनल शुरू करना
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
) पर होगा.
चौथा चरण: Windows पर Bazel बनाना
यूनिक्स जैसे सिस्टम के लिए निर्देश पाने के लिए, Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम लेख पढ़ें.
लक्ष्य: अपनी पसंद के हिसाब से Baज़र का बाइनरी (bazel-bin\src\bazel-dev.exe
) बनाने के लिए, Bagel चलाएं.
निर्देश:
Command Prompt खोलें (Start मेन्यू > Run > "cmd.exe")
cd
को उस डायरेक्ट्री में सेव करें जहां से आपने Basel के सोर्स एक्सट्रैक्ट या क्लोन किए थे.उदाहरण के लिए, अगर आपने सोर्स को अपनी होम डायरेक्ट्री में निकाला है, तो यह चलाएं:
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
) पर होगा.
पांचवां चरण: बनाई गई बाइनरी इंस्टॉल करना
दरअसल, आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.
पिछले चरण का आउटपुट, एक सेल्फ़-कंटेन्ड बेज़ल बाइनरी है. इसे किसी भी डायरेक्ट्री में कॉपी करके तुरंत इस्तेमाल किया जा सकता है. (यह तब उपयोगी होता है जब वह निर्देशिका आपके PATH पर हो ताकि आप हर जगह "bazu" चला सकें.)
शुरुआत से बेज़ल बनाएं (बूटस्ट्रैपिंग)
किसी मौजूदा Bazel बाइनरी का इस्तेमाल किए बिना भी, Bazel को नए सिरे से बनाया जा सकता है.
पहला चरण: Bazel के सोर्स (डिस्ट्रिब्यूशन संग्रह) डाउनलोड करना
(यह चरण सभी प्लैटफ़ॉर्म के लिए एक जैसा है.)
उदाहरण के लिए,
bazel-0.28.1-dist.zip
को GitHub से डाउनलोड करें.ध्यान दें:
- एक ही, आर्किटेक्चर से स्वतंत्र डिस्ट्रिब्यूशन संग्रह होना चाहिए. इसमें आर्किटेक्चर या ओएस के हिसाब से डिस्ट्रिब्यूशन के संग्रह नहीं होते.
- ये सोर्स GitHub सोर्स ट्री के जैसे नहीं हैं. Bazel को बूटस्ट्रैप करने के लिए, आपको डिस्ट्रिब्यूशन संग्रह का इस्तेमाल करना होगा. GitHub से क्लोन किए गए सोर्स ट्री का इस्तेमाल नहीं किया जा सकता. (डिस्ट्रिब्यूशन संग्रह में जनरेट की गई सोर्स फ़ाइलें होती हैं, जो बूटस्ट्रैपिंग के लिए ज़रूरी होती हैं और सामान्य Git सोर्स ट्री का हिस्सा नहीं होती हैं.)
डिस्ट्रिब्यूशन संग्रह को डिस्क पर कहीं भी अनपैक करें.
आपको बेज़ेल की रिलीज़ कुंजी 3D5919B448457EE0 से किए गए हस्ताक्षर की पुष्टि करनी होगी.
चरण 2a: Ubuntu Linux, macOS, और Unix जैसे दूसरे सिस्टम पर बूटस्ट्रैप बेज़ल
Windows के लिए निर्देश पाने के लिए, Windows पर Bazel को बूटस्ट्रैप करना लेख पढ़ें.
2.1. ज़रूरी शर्तें इंस्टॉल करना
बैश
ज़िप, अनज़िप
C++ बिल्ड टूलचेन
JDK. वर्शन 11 का होना ज़रूरी है.
Python. इसका दूसरा और तीसरा वर्शन काम करता है. इनमें से किसी एक को इंस्टॉल करना ही काफ़ी है.
उदाहरण के लिए, Ubuntu Linux पर ये ज़रूरी शर्तें, नीचे दिए गए कमांड का इस्तेमाल करके इंस्टॉल की जा सकती हैं:
sudo apt-get install build-essential openjdk-11-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
को भी सेट करें.
चरण 2b: Windows पर बूटस्ट्रैप बेज़ल
Unix-जैसे सिस्टम के लिए निर्देशों के लिए, Ubuntu Linux, macOS, और Unix-जैसे दूसरे सिस्टम पर बूटस्ट्रैप बेज़ल देखें.
2.1. ज़रूरी शर्तें इंस्टॉल करें
ZIP और अनज़िप करने के लिए MSYS2 पैकेज. MSYS2 शेल में निम्न कमांड चलाएं:
pacman -S zip unzip patch
विज़ुअल C++ कंपाइलर. Visual C++ कंपाइलर को Visual Studio 2015 या उसके बाद के वर्शन के साथ इंस्टॉल करें. इसके अलावा, Visual Studio 2017 के लिए सबसे नए Build Tools इंस्टॉल करके भी ऐसा किया जा सकता है.
JDK. वर्शन 11 का होना ज़रूरी है.
Python. इसके वर्शन 2 और 3 काम करते हैं. इनमें से किसी एक को इंस्टॉल करना ही काफ़ी है. आपके पास 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
: MSYS2bash.exe
का पाथ. नीचे दिए गए उदाहरणों में कमांड देखें.इसे
C:\Windows\System32\bash.exe
पर सेट न करें. (अगर आपने Linux के लिए Windows सबसिस्टम इंस्टॉल किया है, तो आपके पास वह फ़ाइल होगी.) 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/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
में रखा जाता है. यह एक ऐसी बाइनरी है जिसमें JDK एम्बेड नहीं किया गया है. उसे कहीं भी कॉपी किया जा सकता है या
उसकी जगह पर इस्तेमाल किया जा सकता है. आसानी के लिए, इस बाइनरी को PATH
पर मौजूद किसी डायरेक्ट्री में कॉपी करें.
फिर से जनरेट किए जा सकने वाले तरीके से bazel.exe
बाइनरी बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" चरण में SOURCE_DATE_EPOCH
को भी सेट करें.
आपको MSYS2 शेल से Bazel चलाने की ज़रूरत नहीं है. Bazel को कमांड प्रॉम्प्ट (cmd.exe
) या PowerShell से चलाया जा सकता है.