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

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

इस पेज में बताया गया है कि सोर्स से Basel को कैसे इंस्टॉल किया जाए और आम समस्याओं को हल करने के लिए सलाह पाएं.

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

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

खास जानकारी

  1. पेश है Basel का नया वर्शन GitHub रिलीज़ पेज या इसके साथ बेज़ेलिस्क.

  2. GitHub से Basel के सोर्स डाउनलोड करें एक्सट्रैक्ट करने के लिए बहुत कुछ है. इसके अलावा, आपके पास https://github.com/batzbuild/ba इमारतों से सोर्स ट्री का क्लोन बनाने का विकल्प भी है

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

  4. Basel का इस्तेमाल करके, Basel का डेवलपमेंट बिल्ड बनाएं: bazel build //src:bazel-dev (या bazel build //src:bazel-dev.exe चालू है Windows)

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

इसके बारे में ज़्यादा जानकारी के लिए नीचे दिया गया है.

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

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

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

समस्या का हल:

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

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

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

    • हो सकता है कि खुद बेज़ल बाइनरी को bazel (Unixes पर) न कहा जाए या bazel.exe (Windows पर).

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

    • शायद बाइनरी फ़ाइल एक्ज़ीक्यूटेबल नहीं है (यूनिक्स पर).

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

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

अगर आपको Git के बारे में जानकारी है, तो बस git clone https://github.com/batzbuild/baकोई का इस्तेमाल करें

अन्यथा:

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

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

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

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

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

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

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

लक्ष्य: अपनी ज़रूरत के हिसाब से Basel बाइनरी (bazel-bin/src/bazel-dev) बनाने के लिए Basel को चलाएं.

निर्देश:

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

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

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

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

    bazel build //src:bazel-dev
    

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

    Basel को एम्बेड करने के लिए, आपके पास --stamp --embed_label=X.Y.Z फ़्लैग का इस्तेमाल करने का विकल्प है बाइनरी के लिए एक वर्शन है, ताकि bazel --version दिए गए वर्शन का आउटपुट दे.

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

चरण 4b: Windows पर बेज़ल बनाना

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

लक्ष्य: अपनी पसंद के हिसाब से Basel बाइनरी बनाने के लिए Basel को चलाएं (bazel-bin\src\bazel-dev.exe).

निर्देश:

  1. कमांड प्रॉम्प्ट शुरू करें (Start menu > Run > "cmd.exe")

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

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

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

    बैजल बिल्ड //src:bagel-dev.exe

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

    Basel को एम्बेड करने के लिए, आपके पास --stamp --embed_label=X.Y.Z फ़्लैग का इस्तेमाल करने का विकल्प है बाइनरी के लिए एक वर्शन है, ताकि bazel --version दिए गए वर्शन का आउटपुट दे.

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

पांचवां चरण: बनाई गई बाइनरी इंस्टॉल करना

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

पिछले चरण का आउटपुट, एक सेल्फ़-कंटेन्ड बेज़ल बाइनरी है. आपके पास कॉपी करने का विकल्प होता है इसे किसी भी डायरेक्ट्री में एक्सपोर्ट करके तुरंत इस्तेमाल कर सकते हैं. (यह तब काम आता है, जब वह डायरेक्ट्री चालू हो आपका PATH लिखें ताकि आप "baaz" चला सकें everywhere.)


शुरुआत से बेज़ल बनाएं (बूटस्ट्रैपिंग)

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

पहला चरण: Basel के सोर्स (डिस्ट्रिब्यूशन आर्काइव) डाउनलोड करना

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

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

    ध्यान दें:

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

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

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

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

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

  • बैश

  • ज़िप, अनज़िप

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

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

  • Python. वर्शन 2 और 3 समर्थित हैं, जिनमें से किसी एक को इंस्टॉल किया जा रहा है बहुत हो गया.

उदाहरण के लिए, Ubuntu Linux पर, आप निम्न आदेश:

sudo apt-get install build-essential openjdk-21-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 पर बूटस्ट्रैप बेज़ल

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

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

  • MSYS2 शेल

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

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

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

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

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 सबसिस्टम इंस्टॉल किया है.) 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/jdk-21"
    

    या (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/jdk-21"
    
  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.