کامپایل بازل از منبع

این صفحه نحوه نصب Bazel از منبع را شرح می دهد و نکات عیب یابی برای مشکلات رایج را ارائه می دهد.

برای ساخت Bazel از منبع، می توانید یکی از موارد زیر را انجام دهید:

Bazel را با استفاده از Bazel بسازید

خلاصه

  1. آخرین نسخه Bazel را از صفحه انتشار GitHub یا با Bazelisk دریافت کنید.

  2. سورس های بازل را از گیت هاب دانلود کنید و در جایی استخراج کنید. همچنین می‌توانید درخت منبع را از https://github.com/bazelbuild/bazel کلون کنید.

  3. همان پیش نیازهایی را که برای بوت استرپینگ وجود دارد نصب کنید ( به سیستم های شبه یونیکس یا ویندوز مراجعه کنید )

  4. ساختن ساخت توسعه Bazel با استفاده از Bazel: bazel build //src:bazel-dev (یا bazel build //src:bazel-dev.exe در ویندوز)

  5. باینری حاصل در bazel-bin/src/bazel-dev (یا bazel-bin\src\bazel-dev.exe در ویندوز) قرار دارد. می توانید آن را در هر کجا که دوست دارید کپی کنید و بلافاصله بدون نصب بیشتر از آن استفاده کنید.

دستورالعمل های دقیق زیر را دنبال کنید.

مرحله 1: آخرین نسخه Bazel را دریافت کنید

هدف : نصب یا دانلود نسخه انتشاری Bazel. مطمئن شوید که می توانید آن را با تایپ bazel در ترمینال اجرا کنید.

دلیل : برای ساخت Bazel از درخت منبع GitHub، به یک باینری Bazel از قبل موجود نیاز دارید. می توانید یکی را از یک مدیریت بسته نصب کنید یا یکی از GitHub دانلود کنید. نصب Bazel را ببینید. (یا می توانید از ابتدا بسازید (بوت استرپ) .)

عیب یابی :

  • اگر نمی توانید Bazel را با تایپ bazel در ترمینال اجرا کنید:

    • شاید دایرکتوری باینری Bazel شما در PATH نباشد.

      این مشکل بزرگی نیست. به جای تایپ bazel ، باید مسیر کامل را تایپ کنید.

    • شاید خود باینری Bazel به نام bazel (در یونیکس) یا bazel.exe (در ویندوز) نباشد.

      این مشکل بزرگی نیست. می توانید نام باینری را تغییر دهید یا به جای bazel نام باینری را تایپ کنید.

    • شاید باینری قابل اجرا نباشد (در یونیکس).

      شما باید با اجرای chmod +x /path/to/bazel ، فایل باینری را قابل اجرا کنید.

مرحله 2: منابع Bazel را از GitHub دانلود کنید

اگر با Git آشنایی دارید، کافی است git clone https://github.com/bazelbuild/bazel

در غیر این صورت:

  1. آخرین منابع را به صورت فایل فشرده دانلود کنید.

  2. مطالب را در جایی استخراج کنید.

    به عنوان مثال یک پوشه bazel-src در زیر فهرست اصلی خود ایجاد کنید و در آنجا استخراج کنید.

مرحله 3: پیش نیازها را نصب کنید

همان پیش نیازهای راه‌اندازی را نصب کنید (به زیر مراجعه کنید) - JDK، کامپایلر C++، MSYS2 (اگر روی ویندوز می‌سازید) و غیره.

مرحله ۴a: Bazel را روی لینوکس اوبونتو، macOS و دیگر سیستم‌های مشابه یونیکس بسازید

برای دستورالعمل‌های مربوط به ویندوز، به ساخت Bazel در ویندوز مراجعه کنید.

هدف : Bazel را برای ساخت یک باینری سفارشی Bazel ( bazel-bin/src/bazel-dev ) اجرا کنید.

دستورالعمل :

  1. یک پایانه Bash راه اندازی کنید

  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 ) خواهد بود.

مرحله 4b: ساخت Bazel در ویندوز

برای دستورالعمل‌های مربوط به سیستم‌های شبه یونیکس، لینوکس اوبونتو، macOS و سایر سیستم‌های مشابه یونیکس را ببینید.

هدف : Bazel را برای ساخت یک باینری سفارشی bazel-bin\src\bazel-dev.exe ) اجرا کنید.

دستورالعمل :

  1. Command Prompt را شروع کنید (منوی شروع > اجرا > 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 bazel-bin\src\bazel.exe ) خواهد بود.

مرحله 5: باینری ساخته شده را نصب کنید

در واقع چیزی برای نصب وجود ندارد.

خروجی مرحله قبل یک باینری بازل مستقل است. می توانید آن را در هر دایرکتوری کپی کنید و بلافاصله استفاده کنید. (اگر آن دایرکتوری در PATH شما باشد مفید است تا بتوانید "بازل" را در همه جا اجرا کنید.)


ساخت Bazel از ابتدا (بوت استرپ)

شما همچنین می توانید Bazel را از ابتدا و بدون استفاده از باینری موجود Bazel بسازید.

مرحله 1: دانلود منابع بازل (بایگانی توزیع)

(این مرحله برای همه پلتفرم ها یکسان است.)

  1. bazel-<version>-dist.zip از GitHub دانلود کنید، برای مثال bazel-0.28.1-dist.zip .

    توجه :

    • یک آرشیو توزیع مستقل و مستقل از معماری وجود دارد. هیچ بایگانی توزیع خاص معماری یا سیستم عامل وجود ندارد.
    • این منابع با درخت منبع GitHub یکسان نیستند . برای بوت استرپ Bazel باید از آرشیو توزیع استفاده کنید. شما نمی توانید از درخت منبع شبیه سازی شده از GitHub استفاده کنید. (بایگانی توزیع حاوی فایل‌های منبع تولید شده است که برای راه‌اندازی لازم هستند و بخشی از درخت منبع طبیعی Git نیستند.)
  2. آرشیو توزیع را در جایی روی دیسک باز کنید.

    باید امضای کلید آزادسازی Bazel 3D5919B448457EE0 را تأیید کنید.

مرحله 2a: بوت استرپ Bazel در لینوکس اوبونتو، macOS و سایر سیستم های مشابه یونیکس

برای دستورالعمل‌های مربوط به ویندوز، Bootstrap Bazel در ویندوز را ببینید.

2.1. پیش نیازها را نصب کنید

  • ضربه شدید

  • زیپ، باز کردن

  • C++ ساخت زنجیره ابزار

  • JDK نسخه 11 مورد نیاز است.

  • پایتون . نسخه های 2 و 3 پشتیبانی می شوند، نصب یکی از آنها کافی است.

به عنوان مثال در لینوکس اوبونتو می توانید این الزامات را با استفاده از دستور زیر نصب کنید:

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

2.2. بوت استرپ Bazel در یونیکس

  1. یک پوسته یا پنجره ترمینال را باز کنید.

  2. cd به دایرکتوری که در آن آرشیو توزیع را باز کرده اید.

  3. اسکریپت کامپایل را اجرا کنید: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh .

خروجی کامپایل شده در output/bazel قرار می گیرد. این یک باینری Bazel مستقل، بدون JDK تعبیه شده است. می توانید آن را در هر جایی کپی کنید یا در جای خود از آن استفاده کنید. برای راحتی، این باینری را در فهرستی که در PATH شما قرار دارد (مانند /usr/local/bin در لینوکس) کپی کنید.

برای ساختن باینری SOURCE_DATE_EPOCH bazel نیز در مرحله "اجرای اسکریپت کامپایل" تنظیم کنید.

مرحله 2b: Bazel را در ویندوز بوت استرپ کنید

برای دستورالعمل‌های سیستم‌های شبه یونیکس، Bootstrap Bazel را در لینوکس اوبونتو، macOS و دیگر سیستم‌های مشابه یونیکس ببینید.

2.1. پیش نیازها را نصب کنید

  • پوسته MSYS2

  • بسته های MSYS2 برای zip و unzip. دستور زیر را در پوسته MSYS2 اجرا کنید:

    pacman -S zip unzip patch
    
  • کامپایلر Visual C++. کامپایلر Visual C++ را به عنوان بخشی از Visual Studio 2015 یا جدیدتر یا با نصب آخرین ابزارهای ساخت ویژوال استودیو 2017 نصب کنید.

  • JDK نسخه 11 مورد نیاز است.

  • پایتون . نسخه های 2 و 3 پشتیبانی می شوند، نصب یکی از آنها کافی است. شما به نسخه بومی ویندوز (قابل دانلود از https://www.python.org ) نیاز دارید. نسخه های نصب شده از طریق pacman در MSYS2 کار نمی کنند.

2.2. بوت استرپ Bazel در ویندوز

  1. پوسته MSYS2 را باز کنید.

  2. متغیرهای محیطی زیر را تنظیم کنید:

    • BAZEL_VS یا BAZEL_VC (آنها یکسان نیستند ): مسیر دایرکتوری Visual Studio (BAZEL_V S ) یا دایرکتوری Visual C++ (BAZEL_V C ) را تنظیم کنید. تنظیم یکی از آنها کافی است.
    • BAZEL_SH : مسیر MSYS2 bash.exe . دستور را در مثال های زیر ببینید.

      این را روی C:\Windows\System32\bash.exe قرار ندهید. (اگر زیر سیستم ویندوز را برای لینوکس نصب کرده باشید، آن فایل را دارید.) Bazel از این نسخه bash.exe پشتیبانی نمی کند.

    • PATH : دایرکتوری پایتون را اضافه کنید.

    • JAVA_HOME : روی فهرست JDK تنظیم کنید.

    مثال (با استفاده از BAZEL_V S ):

    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_V C ):

    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 قرار می گیرد. این یک باینری Bazel مستقل، بدون JDK تعبیه شده است. می توانید آن را در هر جایی کپی کنید یا در جای خود از آن استفاده کنید. برای راحتی، این باینری را در فهرستی که در PATH شما قرار دارد کپی کنید.

برای ساختن باینری bazel.exe به روشی قابل تکرار، SOURCE_DATE_EPOCH را نیز در مرحله "اجرای اسکریپت کامپایل" تنظیم کنید.

شما نیازی به اجرای Bazel از پوسته MSYS2 ندارید. می‌توانید Bazel را از Command Prompt ( cmd.exe ) یا PowerShell اجرا کنید.