इस पेज पर, Bazel को सोर्स से इंस्टॉल करने का तरीका बताया गया है. साथ ही, सामान्य समस्याओं को हल करने के लिए सलाह दी गई है.
सोर्स से Bazel बनाने के लिए, इनमें से कोई एक काम करें:
इसे मौजूदा Bazel बाइनरी का इस्तेमाल करके बनाएं
इसे पहले से मौजूद Bazel बाइनरी के बिना बनाएं. इसे बूटस्ट्रैपिंग कहा जाता है.
Bazel का इस्तेमाल करके Bazel बनाएं
खास जानकारी
GitHub के रिलीज़ पेज या Bazelisk से, Bazel का नया वर्शन पाएं.
GitHub से Bazel के सोर्स डाउनलोड करें और कहीं से भी. इसके अलावा, https://github.com/bazelbuild/bazel से सोर्स ट्री का क्लोन बनाया जा सकता है
बूटस्ट्रैपिंग के लिए ज़रूरी शर्तें इंस्टॉल करें (यूनिक्स जैसे सिस्टम के लिए या 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
(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, और 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
) पर होगा.
चौथा चरण (b): 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 को शुरुआत से बनाया जा सकता है.
पहला चरण: Bazel के सोर्स (डिस्ट्रिब्यूशन संग्रह) डाउनलोड करें
(यह चरण सभी प्लैटफ़ॉर्म के लिए एक जैसा है.)
GitHub से
bazel-<version>-dist.zip
डाउनलोड करें, जैसे किbazel-0.28.1-dist.zip
.ध्यान दें:
- एक ही फ़ॉर्मैट, आर्किटेक्चर से जुड़ा हुआ डिस्ट्रिब्यूशन संग्रह होता है. आर्किटेक्चर से जुड़े या ओएस के हिसाब से डिस्ट्रिब्यूशन का कोई संग्रह नहीं होता.
- ये सोर्स, GitHub के सोर्स ट्री जैसे नहीं हैं. आपको Bzel को चालू करने के लिए डिस्ट्रिब्यूशन संग्रह का इस्तेमाल करना होगा. GitHub से क्लोन किया गया सोर्स ट्री इस्तेमाल नहीं किया जा सकता. (डिस्ट्रिब्यूशन संग्रह में जनरेट की गई ऐसी सोर्स फ़ाइलें होती हैं जो बूटस्ट्रैपिंग के लिए ज़रूरी होती हैं और जो सामान्य गिट सोर्स ट्री का हिस्सा नहीं होती हैं.)
डिस्ट्रिब्यूशन संग्रह को डिस्क पर कहीं भी अनपैक करें.
आपको Bazel की रिलीज़ कुंजी 3D5919B448457EE0 के बनाए गए हस्ताक्षर की पुष्टि करनी होगी.
चरण 2a: Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर बूटस्ट्रैप Bazel
Windows के लिए निर्देशों के लिए, Windows पर Bootstrap Bazel देखें.
2.1. ज़रूरी शर्तें इंस्टॉल करना
बैश
zip, अनज़िप
C++ बिल्ड टूलचेन
JDK. वर्शन 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
में रखा जाता है. यह एक बेज़ेल बाइनरी है, जो अपने-आप
पूरी तरह तैयार है. इसमें जेडीके को एम्बेड नहीं किया गया है. आप इसे कहीं भी कॉपी कर सकते हैं
या वहीं भी इसका उपयोग कर सकते हैं. सुविधा के लिए, इस बाइनरी को अपने PATH
पर मौजूद किसी डायरेक्ट्री में कॉपी करें (जैसे, Linux पर /usr/local/bin
).
bazel
बाइनरी को फिर से जनरेट करने के तरीके से बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" वाले चरण में
SOURCE_DATE_EPOCH
को भी सेट करें.
दूसरा चरण (b): Windows पर बूटस्ट्रैप Bazel
Unix जैसे सिस्टम के लिए निर्देशों के लिए, Ubuntu Linux, macOS, और Unix जैसे दूसरे सिस्टम पर Boootstrap Bazel देखें.
2.1. ज़रूरी शर्तें इंस्टॉल करना
zip और अनज़िप करने के लिए MSYS2 पैकेज. MSYS2 शेल में नीचे दिए गए निर्देश चलाएं:
pacman -S zip unzip patch
विज़ुअल C++ कंपाइलर. विज़ुअल C++ कंपाइलर को, Visual Studio 2015 या इसके बाद के हिस्से के तौर पर इंस्टॉल करें या Visual Studio 2017 के लिए बनाने वाले नए टूल को इंस्टॉल करके ऐसा किया जा सकता है.
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) के पाथ पर सेट करें या विज़ुअल 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/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
में रखा जाता है. यह एक बेज़ेल बाइनरी है, जो अपने-आप
पूरी तरह तैयार है. इसमें जेडीके को एम्बेड नहीं किया गया है. आप इसे कहीं भी कॉपी कर सकते हैं
या वहीं भी इसका उपयोग कर सकते हैं. सुविधा के लिए, इस बाइनरी को अपने PATH
पर मौजूद डायरेक्ट्री में कॉपी करें.
bazel.exe
बाइनरी को फिर से जनरेट करने के तरीके से बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" वाले चरण में
SOURCE_DATE_EPOCH
को भी सेट करें.
आपको MSYS2 शेल से Bazel चलाने की ज़रूरत नहीं है. आप Bazel को
Command Prompt (cmd.exe
) या PowerShell से चला सकते हैं.