सोर्स से Bazel को कंपाइल किया जा रहा है

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

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

Basel का इस्तेमाल करके Basel का निर्माण करें

खास जानकारी

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

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

  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) में मौजूद होती है. इसे कहीं से भी कॉपी किया जा सकता है और इंस्टॉल किए बिना तुरंत इस्तेमाल करें.

इसके बारे में पूरी जानकारी नीचे दी गई है.

पहला चरण: Basel का नया वर्शन डाउनलोड करना

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

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

समस्या का हल:

  • अगर आप टर्मिनल में bazel टाइप करके Baज़ल को नहीं चला पा रहे हैं:

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

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

    • ऐसा हो सकता है कि Bazel बाइनरी को bazel (Unix पर) या bazel.exe (Windows पर) न कहा जाए.

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

    • हो सकता है कि बाइनरी को Unix पर चलाया न जा सके.

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

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

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

अन्यथा:

  1. Google News ऐप्लिकेशन zip फ़ाइल के रूप में नए स्रोत चुनें.

  2. कॉन्टेंट को कहीं एक्सट्रैक्ट करें.

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

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

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

चरण 4a: Ubuntu Linux, macOS, और Unix जैसे दूसरे सिस्टम पर Basel का ऐप्लिकेशन बनाना

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

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

निर्देश:

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

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

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

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

चरण 4b: Windows पर Basel का ऐप्लिकेशन बनाएं

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

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

निर्देश:

  1. Command Prompt खोलें (Start Menu > Run > "cmd.exe")

  2. cd को उस डायरेक्ट्री में सेव करें जहां से आपने Basel के सोर्स एक्सट्रैक्ट या क्लोन किए थे.

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

    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 लिखें ताकि आप "baaz" चला सकें everywhere.)


Bazel को नए सिरे से बनाना (बूटस्ट्रैप करना)

आप मौजूदा Basel बाइनरी का उपयोग किए बिना भी, Basel को शुरुआत से बना सकते हैं.

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

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

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

    ध्यान दें:

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

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

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

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

  1. कोई शेल या Terminal विंडो खोलें.

  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 सेट करें.

दूसरा चरण: Windows पर Bazel को बूटस्ट्रैप करना

यूनिक्स जैसे सिस्टम के लिए निर्देश पाने के लिए, Ubuntu Linux, macOS, और यूनिक्स जैसे अन्य सिस्टम पर Bazel को बूटस्ट्रैप करना लेख पढ़ें.

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

  • MSYS2 शेल

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

    pacman -S zip unzip patch
    
  • विज़ुअल C++ कंपाइलर. विज़ुअल C++ कंपाइलर को या इसके हिस्से के तौर पर इंस्टॉल करें Visual Studio 2015 या उसके बाद के के लिए,

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

  • Python. इसका दूसरा और तीसरा वर्शन काम करता है. इनमें से किसी एक को इंस्टॉल करना ही काफ़ी है. आपके पास Windows के लिए उपलब्ध Python का वर्शन होना चाहिए. इसे 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 पर सेट न करें. (अगर आपने Windows Subsystem for Linux इंस्टॉल किया है, तो आपके पास वह फ़ाइल होगी.) 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"
    
  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 शेल से बेज़ल चलाने की ज़रूरत नहीं है. आप Basel को यहां से चला सकते हैं: Command Prompt (cmd.exe) या PowerShell.