स्रोत से बज़ल का संग्रह

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
समस्या की शिकायत करें स्रोत देखें

इस पेज पर यह बताया गया है कि Bazel को किस तरह इंस्टॉल किया जाता है. साथ ही, इसमें आम समस्याओं को हल करने से जुड़ी सलाह भी दी गई है.

स्रोत से बेज़ल बनाने के लिए, आप इनमें से कोई एक काम कर सकते हैं:

Bazel का इस्तेमाल करके Bazel बनाएं

खास जानकारी

  1. GitHub की रिलीज़ वाले पेज या Bazelisk से नया Bazel रिलीज़ पाएं.

  2. GitHub से स्रोत डाउनलोड करें और कहीं भी निकालें. इसके अलावा, https://github.com/bazelbuild/bazel से सोर्स ट्री को क्लोन करें

  3. बूटस्ट्रैपिंग के लिए ज़रूरी शर्तें ही इंस्टॉल करें (यूनिक्स जैसे सिस्टम के लिए या Windows के लिए देखें)

  4. Bazel का इस्तेमाल करके Bazel का डेवलपमेंट बिल्ड करें: bazel build //src:bazel-dev (या Windows पर bazel build //src:bazel-dev.exe)

  5. नतीजे के तौर पर दिखने वाली बाइनरी, bazel-bin/src/bazel-dev (या Windows पर bazel-bin\src\bazel-dev.exe) है. आप इसे कहीं भी कॉपी कर सकते हैं और तुरंत इंस्टॉल किए बिना इसका उपयोग कर सकते हैं.

ज़्यादा जानकारी के लिए नीचे दिए गए निर्देशों का पालन करें.

पहला चरण: Bazel की नई रिलीज़ पाएं

लक्ष्य: Bazel का रिलीज़ वर्शन इंस्टॉल या डाउनलोड करना. पक्का करें कि आप टर्मिनल में bazel लिखकर इसे चला सकते हैं.

वजह: GitHub सोर्स ट्री से Bazel बनाने के लिए, आपको पहले से मौजूद Bazel बाइनरी की ज़रूरत है. आप पैकेज मैनेजर से एक पैकेज इंस्टॉल कर सकते हैं या उसे GitHub से डाउनलोड कर सकते हैं. Bzel को इंस्टॉल करना देखें. (या आप स्क्रैच (बूटस्ट्रैप) से बना सकते हैं.)

समस्या का हल:

  • अगर आप टर्मिनल में bazel लिखकर Bazel नहीं चला सकते, तो:

    • हो सकता है कि आपकी Bazel बाइनरी की डायरेक्ट्री, पाथ पर न हो.

      यह कोई बड़ी समस्या नहीं है. bazel लिखने के बजाय, आपको पूरा पाथ लिखना होगा.

    • हो सकता है कि बेज़ल बाइनरी को bazel (यूनिक्स पर) या bazel.exe (Windows पर) नहीं कहा जाता.

      यह कोई बड़ी समस्या नहीं है. आप बाइनरी का नाम बदल सकते हैं या bazel के बजाय बाइनरी का नाम लिख सकते हैं.

    • हो सकता है कि बाइनरी, एक्ज़ीक्यूटेबल न हो. यह यूनिक्स पर है.

      आपको chmod +x /path/to/bazel चलाकर बाइनरी को एक्ज़ीक्यूटेबल बनाना होगा.

दूसरा चरण: GitHub से Bazel के सोर्स डाउनलोड करें

अगर आप Git के बारे में जानते हैं, तो बस https://github.com/bazelbuild/bazel का इस्तेमाल करें

इसके अलावा:

  1. ज़िप फ़ाइलों के तौर पर सबसे नए स्रोत डाउनलोड करें.

  2. कॉन्टेंट को कहीं से निकालें.

    उदाहरण के लिए, अपनी होम डायरेक्ट्री में bazel-src डायरेक्ट्री बनाएं और उसके साथ जाएं.

तीसरा चरण: ज़रूरी शर्तें इंस्टॉल करना

बूटस्ट्रैपिंग (नीचे देखें) की तरह ही ज़रूरी शर्तें इंस्टॉल करें -- JDK, C++ कंपाइलर, MSYS2 (अगर आप Windows पर बना रहे हैं), वगैरह.

चरण 4a: Ubuntu Linux, macOS, और अन्य Unix जैसे सिस्टम पर Bazel बनाएं

Windows के लिए निर्देश, Windows पर बिल्ड बनाएं देखें.

लक्ष्य: पसंद के मुताबिक बेज़ल बाइनरी (bazel-bin/src/bazel-dev) बनाने के लिए, बेज़ल चलाएं.

निर्देश:

  1. बैश टर्मिनल शुरू करें

  2. cd उस डायरेक्ट्री में जहां आपने बेज़ल के स्रोत निकाले थे (या डिवाइस से जुड़े थे).

    उदाहरण के लिए, अगर आपने अपनी होम डायरेक्ट्री के तहत सोर्स निकाले हैं, तो:

    cd ~/bazel-src
    
  3. स्रोत से बेज़ल बनाएं:

    bazel build //src:bazel-dev
    

    विकल्प के तौर पर, आप एक छोटी बाइनरी जनरेट करने के लिए bazel build //src:bazel --compilation_mode=opt चला सकते हैं. हालांकि, इसे बनाने में ज़्यादा समय लगता है.

  4. आउटपुट bazel-bin/src/bazel-dev (या bazel-bin/src/bazel) पर होगा.

चौथा चरण (b): Windows पर Bazel बनाना

Unix जैसे सिस्टम के निर्देशों के लिए, Ubuntu Linux, macOS, और Unix जैसे दूसरे सिस्टम देखें.

लक्ष्य: बेज़ल बनाएं, ताकि पसंद के मुताबिक बेज़ल बाइनरी बनाई जा सके (bazel-bin\src\bazel-dev.exe).

निर्देश:

  1. कमांड प्रॉम्प्ट शुरू करें (स्टार्ट मेन्यू > चलाएं > "cmd.exe")

  2. cd उस डायरेक्ट्री में जहां आपने बेज़ल के स्रोत निकाले थे (या डिवाइस से जुड़े थे).

    उदाहरण के लिए, अगर आपने अपनी होम डायरेक्ट्री के तहत सोर्स निकाले हैं, तो:

    cd %USERPROFILE%\bazel-src
    
  3. स्रोत से बेज़ल बनाएं:

    bazel build //src:bazel-dev.exe
    

    इसके अलावा, आप एक छोटी बाइनरी बनाने के लिए bazel build //src:bazel.exe --compilation_mode=opt चला सकते हैं, लेकिन यह धीमी है.

  4. आउटपुट bazel-bin\src\bazel-dev.exe (या bazel-bin\src\bazel.exe) पर होगा.

चरण 5: बनी बाइनरी इंस्टॉल करना

दरअसल, इंस्टॉल करने के लिए कुछ भी नहीं है.

पिछले चरण का नतीजा, बेज़ल की बाइनरी है. आप इसे किसी भी डायरेक्ट्री में कॉपी कर सकते हैं और तुरंत इस्तेमाल कर सकते हैं. (यह डायरेक्ट्री काम की है, अगर वह डायरेक्ट्री आपके पाथ पर है, ताकि आप "बैज" चला सकें.)


बेज़ल से स्क्रैच बनाएं (बूटस्ट्रैपिंग)

आप बेज़ल की किसी बाइनरी का इस्तेमाल किए बिना भी बेज़ल बना सकते हैं.

पहला चरण: Bazel के स्रोत (डिस्ट्रिब्यूशन संग्रह) डाउनलोड करें

(यह चरण सभी प्लैटफ़ॉर्म के लिए एक ही है.)

  1. GitHub से bazel-<version>-dist.zip डाउनलोड करें, जैसे किbazel-0.28.1-dist.zip.

    ध्यान दें:

    • एक आर्किटेक्चर, अलग-अलग इंडिपेंडेंट डिस्ट्रिब्यूशन संग्रह है. आर्किटेक्चर से जुड़ा या ओएस के हिसाब से डिस्ट्रिब्यूशन संग्रहित नहीं है.
    • ये स्रोत GitHub के सोर्स ट्री के जैसे नहीं होते. आपको बूलस्ट्रैप बैज़ल के लिए, डिस्ट्रिब्यूशन संग्रह का इस्तेमाल करना होगा. आप GitHub से क्लोन किए गए सोर्स ट्री का इस्तेमाल नहीं कर सकते. (डिस्ट्रिब्यूशन संग्रह में जनरेट की गई ऐसी सोर्स फ़ाइलें होती हैं जो बूटस्ट्रैपिंग के लिए ज़रूरी होती हैं और ये सामान्य Git स्रोत ट्री का हिस्सा नहीं हैं.)
  2. डिस्ट्रिब्यूशन संग्रह को डिस्क पर कहीं अनपैक करें.

    आपको Bazel की रिलीज़ कुंजी 3D5919B448457EE0 से किए गए हस्ताक्षर की पुष्टि करनी चाहिए.

चरण 2a: Ubuntu Linux, macOS, और Unix जैसे अन्य सिस्टम पर बूटस्ट्रैप बज़ेल

Windows के लिए निर्देश, Windows पर बूटस्ट्रैप बैज़ल देखें.

2.1. ज़रूरी शर्तें इंस्टॉल करना

  • बैश

  • zip, अनज़िप

  • C++ बिल्ड टूलचेन

  • जेडीके वर्शन 11 ज़रूरी है.

  • Python. वर्शन 2 और 3 काम करते हैं, लेकिन उनमें से कोई एक इंस्टॉल करना काफ़ी है.

उदाहरण के लिए, Ubuntu Linux पर, आप नीचे दिए गए निर्देश का इस्तेमाल करके इन ज़रूरी शर्तों को इंस्टॉल कर सकते हैं:

sudo apt-get install build-essential openjdk-11-jdk python zip unzip

2.2. Unix पर बूटस्ट्रैप बेज़ल

  1. शेल या टर्मिनल विंडो खोलें.

  2. cd उस डायरेक्ट्री में जहां आपने डिस्ट्रिब्यूशन संग्रह को अनपैक किया था.

  3. कंपाइलेशन स्क्रिप्ट चलाएं: 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 जैसे दूसरे सिस्टम पर Bottstr Bazel देखें.

2.1. ज़रूरी शर्तें इंस्टॉल करना

  • MSYS2 शेल

  • ज़िप और अनज़िप के लिए MSYS2 पैकेज. MSYS2 शेल में यह कमांड चलाएं:

    pacman -S zip unzip patch
    
  • विज़ुअल C++ कंपाइलर. विज़ुअल स्टूडियो 2015 या उसके बाद के वर्शन के हिस्से के रूप में विज़ुअल C++ कंपाइलर इंस्टॉल करें या विज़ुअल स्टूडियो 2017 के लिए नए बिल्ड टूल इंस्टॉल करके.

  • जेडीके वर्शन 11 ज़रूरी है.

  • Python. वर्शन 2 और 3 काम करते हैं, लेकिन उनमें से कोई एक इंस्टॉल करना काफ़ी है. आपको Windows-नेटिव वर्शन (https://www.python.org से डाउनलोड करने लायक) की ज़रूरत है. MSYS2 में pacman के ज़रिए इंस्टॉल किए गए वर्शन काम नहीं करेंगे.

2.2. Windows पर बूटस्ट्रल बेज़ल

  1. MSYS2 शेल खोलें.

  2. नीचे दिए गए एनवायरमेंट वैरिएबल सेट करें:

    • BAZEL_VS या BAZEL_VC (वे एक जैसे नहीं हैं): विज़ुअल स्टूडियो डायरेक्ट्री (BAZEL_VS) के पाथ पर या विज़ुअल सी++ डायरेक्ट्री (BAZEL_VC पर सेट करें.) इनमें से किसी एक को सेट करना काफ़ी है.
    • BAZEL_SH: MSYS2 bash.exe का पाथ. नीचे दिए गए उदाहरणों में निर्देश देखें.

      इसे C:\Windows\System32\bash.exe पर सेट न करें. (अगर आपने Linux के लिए Windows Subsystem इंस्टॉल किया है तो आपके पास वह फ़ाइल है.) 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"
    
  3. cd उस डायरेक्ट्री में जहां आपने डिस्ट्रिब्यूशन संग्रह को अनपैक किया था.

  4. कंपाइल करने वाली स्क्रिप्ट चलाएं: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh

इकट्ठा किया गया आउटपुट output/bazel.exe में डाला जाता है. यह खुद से बनाई गई बेज़ल बाइनरी है, जिसमें एम्बेड किया गया JDK नहीं है. आप उसे कहीं भी कॉपी कर सकते हैं या उसे अपनी जगह पर इस्तेमाल कर सकते हैं. सुविधा के लिए, इस बाइनरी फ़ाइल को ऐसी डायरेक्ट्री में कॉपी करें जो आपके PATH पर है.

फिर से जनरेट किए जा सकने वाले तरीके से bazel.exe बाइनरी बनाने के लिए, "कंपाइलेशन स्क्रिप्ट चलाएं" चरण में SOURCE_DATE_EPOCH को भी सेट करें.

आपको MSYS2 शेल से Bazel चलाने की ज़रूरत नहीं है. आप कमांड प्रॉम्प्ट (cmd.exe) या PowerShell से Bazel चला सकते हैं.