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

किसी समस्या की शिकायत करें स्रोत देखें

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

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

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

खास जानकारी

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

  2. GitHub से Bazel के स्रोतों को डाउनलोड करें और कहीं पर निकालें. वैकल्पिक रूप से, आप https://github.com/bazelbuild/bazel से स्रोत ट्री को क्लोन कर सकते हैं

  3. बूटस्ट्रैपिंग के लिए ज़रूरी शर्तें ही इंस्टॉल करें (Unix जैसे सिस्टम के लिए या 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 बाइनरी की डायरेक्ट्री, PATH पर न हो.

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

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

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

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

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

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

अगर आप Git से परिचित हैं, तो बस git clone https://github.com/bazelbuild/bazel

इसके अलावा:

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

  2. कॉन्टेंट को किसी जगह पर ले जाएं.

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

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

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

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

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

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

निर्देश:

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

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

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

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

    bazel build //src:bazel-dev
    

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

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

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

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

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

निर्देश:

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

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

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

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

    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) पर होगा.

पांचवां चरण: पहले से मौजूद बाइनरी फ़ाइल को इंस्टॉल करना

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

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


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

आप पहले से मौजूद Bazel बाइनरी का इस्तेमाल किए बिना, शुरू से बेज़ल बना सकते हैं.

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

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

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

    ध्यान दें:

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

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

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

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

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 पर बूटस्ट्रैप बज़ल

  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, macOS, और Unix जैसे दूसरे सिस्टम पर बूटस्ट्रैप बेज़ल देखें.

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

  • MSYS2 शेल

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

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

  • JDK. वर्शन 11 ज़रूरी है.

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

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

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

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

    • BAZEL_VS या BAZEL_VC (वे एक जैसे नहीं होते हैं): विज़ुअल स्टूडियो डायरेक्ट्री (BAZEL_VS) या विज़ुअल C++ डायरेक्ट्री (BAZEL_VC) पर सेट करें. उनमें से किसी को सेट करना काफ़ी है.
    • BAZEL_SH: MSYS2 bash.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"
    
  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 को चला सकते हैं.