इस पेज पर, सोर्स से 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(याbazel build //src:bazel-dev.exeon Windows)नतीजा देने वाला बाइनरी,
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 करें
अन्यथा:
कॉन्टेंट को कहीं एक्सट्रैक्ट करें.
उदाहरण के लिए, अपनी होम डायरेक्ट्री में
bazel-srcडायरेक्ट्री बनाएं और उसमें एक्सट्रैक्ट करें.
तीसरा चरण: ज़रूरी शर्तें पूरी करना
बूटस्ट्रैपिंग के लिए ज़रूरी शर्तें पूरी करें (यहां देखें) -- जेडीके, C++ कंपाइलर, MSYS2 (अगर Windows पर बनाया जा रहा है) वगैरह.
चौथा चरण: Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर 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-bin/src/bazel-dev(याbazel-bin/src/bazel) पर मौजूद होगा.
चौथा चरण: Windows पर Bazel बनाना
Unix जैसे सिस्टम के लिए निर्देश जानने के लिए, Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम देखें.
लक्ष्य: Bazel का कस्टम बाइनरी
(bazel-bin\src\bazel-dev.exe) बनाने के लिए, Bazel चलाना.
निर्देश:
कमांड प्रॉम्प्ट शुरू करें (स्टार्ट मेन्यू > रन > "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 के किसी मौजूदा बाइनरी का इस्तेमाल करने की ज़रूरत नहीं है.
पहला चरण: Bazel के सोर्स डाउनलोड करना (डिस्ट्रिब्यूशन आर्काइव)
(यह चरण सभी प्लैटफ़ॉर्म के लिए एक जैसा है.)
-
ध्यान दें:
- डिस्ट्रिब्यूशन आर्काइव सिर्फ़ एक होता है और यह आर्किटेक्चर पर निर्भर नहीं करता. आर्किटेक्चर या ओएस के हिसाब से डिस्ट्रिब्यूशन आर्काइव नहीं होते.
- ये सोर्स, GitHub के सोर्स ट्री से अलग होते हैं. Bazel को बूटस्ट्रैप करने के लिए, डिस्ट्रिब्यूशन आर्काइव का इस्तेमाल करना ज़रूरी है. GitHub से क्लोन किए गए सोर्स ट्री का इस्तेमाल नहीं किया जा सकता. (डिस्ट्रिब्यूशन आर्काइव में, जनरेट की गई सोर्स फ़ाइलें होती हैं. ये फ़ाइलें, बूटस्ट्रैपिंग के लिए ज़रूरी होती हैं और सामान्य Git सोर्स ट्री का हिस्सा नहीं होती हैं.)
डिस्ट्रिब्यूशन आर्काइव को डिस्क पर कहीं अनपैक करें.
Bazel की रिलीज़ की 3D5919B448457EE0 से बने हस्ताक्षर की पुष्टि करें.
दूसरा चरण: Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर Bazel को बूटस्ट्रैप करना
Windows के लिए निर्देश जानने के लिए, Windows पर Bazel को बूटस्ट्रैप करना देखें.
2.1. ज़रूरी शर्तें पूरी करना
Bash
zip, unzip
C++ बिल्ड टूलचेन
जेडीके. वर्शन 11 ज़रूरी है.
Python. वर्शन 2 और 3 काम करते हैं. इनमें से कोई एक इंस्टॉल करना काफ़ी है.
उदाहरण के लिए, Ubuntu Linux पर इन ज़रूरी शर्तों को पूरा करने के लिए, यह कमांड इस्तेमाल किया जा सकता है:
sudo apt-get install build-essential openjdk-11-jdk python zip unzip
2.2. Unix पर Bazel को बूटस्ट्रैप करना
कोई शेल या टर्मिनल विंडो खोलें.
उस डायरेक्ट्री में
cdकरें जहां आपने डिस्ट्रिब्यूशन आर्काइव को अनपैक किया है.कंपाइलेशन स्क्रिप्ट चलाएं:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.
कंपाइल किया गया आउटपुट, output/bazel में रखा जाता है. यह Bazel का एक अलग बाइनरी है. इसमें, जेडीके एम्बेड नहीं किया गया है. इसे कहीं भी कॉपी किया जा सकता है या उसी जगह पर इस्तेमाल किया जा सकता है. सुविधा के लिए, इस बाइनरी को किसी ऐसी डायरेक्ट्री में कॉपी करें जो आपके PATH पर हो. जैसे, Linux पर /usr/local/bin.
bazel बाइनरी को एक ही तरीके से बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" चरण में
SOURCE_DATE_EPOCH
भी सेट करें.
दूसरा चरण: Windows पर Bazel को बूटस्ट्रैप करना
Unix जैसे सिस्टम के लिए निर्देश जानने के लिए, Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर Bazel को बूटस्ट्रैप करना देखें.
2.1. ज़रूरी शर्तें पूरी करना
ज़िप और अनज़िप के लिए MSYS2 पैकेज. MSYS2 शेल में यह कमांड चलाएं:
pacman -S zip unzip patchVisual C++ कंपाइलर. Visual C++ कंपाइलर को Visual Studio 2015 या इसके नए वर्शन के हिस्से के तौर पर इंस्टॉल करें. इसके अलावा, Visual Studio 2017 के लिए Build Tools का नया वर्शन इंस्टॉल करें.
जेडीके. वर्शन 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: MSYS2 केbash.exeका पाथ. यहां दिए गए उदाहरणों में कमांड देखें.इसे
C:\Windows\System32\bash.exeपर सेट न करें. (अगर आपने Windows Subsystem for Linux इंस्टॉल किया है, तो आपके पास वह फ़ाइल होगी.) Bazel,bash.exeके इस वर्शन के साथ काम नहीं करता.PATH: Python डायरेक्ट्री जोड़ें.JAVA_HOME: जेडीके डायरेक्ट्री पर सेट करें.
उदाहरण (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 में रखा जाता है. यह Bazel का एक अलग बाइनरी है. इसमें, जेडीके एम्बेड नहीं किया गया है. इसे कहीं भी कॉपी किया जा सकता है या उसी जगह पर इस्तेमाल किया जा सकता है. सुविधा के लिए, इस बाइनरी को किसी ऐसी डायरेक्ट्री में कॉपी करें जो आपके PATH पर हो.
bazel.exe बाइनरी को एक ही तरीके से बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" चरण में
SOURCE_DATE_EPOCH
भी सेट करें.
Bazel को MSYS2 शेल से चलाने की ज़रूरत नहीं है. Bazel को कमांड प्रॉम्प्ट (cmd.exe) या PowerShell से चलाया जा सकता है.