این صفحه نحوه نصب Bazel از منبع را شرح می دهد و نکات عیب یابی برای مشکلات رایج را ارائه می دهد.
برای ساخت Bazel از منبع، می توانید یکی از موارد زیر را انجام دهید:
آن را بدون باینری موجود Bazel بسازید که به عنوان bootstrapping شناخته می شود.
Bazel را با استفاده از Bazel بسازید
خلاصه
آخرین نسخه Bazel را از صفحه انتشار GitHub یا با Bazelisk دریافت کنید.
سورس های بازل را از گیت هاب دانلود کنید و در جایی استخراج کنید. همچنین میتوانید درخت منبع را از https://github.com/bazelbuild/bazel کلون کنید.
همان پیش نیازهایی را که برای بوت استرپینگ وجود دارد نصب کنید ( به سیستم های شبه یونیکس یا ویندوز مراجعه کنید )
ساختن ساخت توسعه Bazel با استفاده از Bazel:
bazel build //src:bazel-dev
(یاbazel build //src:bazel-dev.exe
در ویندوز)باینری حاصل در
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
در غیر این صورت:
آخرین منابع را به صورت فایل فشرده دانلود کنید.
مطالب را در جایی استخراج کنید.
به عنوان مثال یک پوشه
bazel-src
در زیر فهرست اصلی خود ایجاد کنید و در آنجا استخراج کنید.
مرحله 3: پیش نیازها را نصب کنید
همان پیش نیازهای راهاندازی را نصب کنید (به زیر مراجعه کنید) - JDK، کامپایلر C++، MSYS2 (اگر روی ویندوز میسازید) و غیره.
مرحله ۴a: Bazel را روی لینوکس اوبونتو، macOS و دیگر سیستمهای مشابه یونیکس بسازید
برای دستورالعملهای مربوط به ویندوز، به ساخت Bazel در ویندوز مراجعه کنید.
هدف : Bazel را برای ساخت یک باینری سفارشی Bazel ( bazel-bin/src/bazel-dev
) اجرا کنید.
دستورالعمل :
یک پایانه Bash راه اندازی کنید
cd
را در دایرکتوری که منابع Bazel را استخراج کرده اید (یا شبیه سازی کرده اید).به عنوان مثال اگر منابع را در فهرست اصلی خود استخراج کرده اید، اجرا کنید:
cd ~/bazel-src
ساخت Bazel از منبع:
bazel build //src:bazel-dev
یا می توانید
bazel build //src:bazel --compilation_mode=opt
را اجرا کنید تا یک باینری کوچکتر به دست آورید اما ساخت آن کندتر است.خروجی در
bazel-bin/src/bazel-dev
(یاbazel-bin/src/bazel
) خواهد بود.
مرحله 4b: ساخت Bazel در ویندوز
برای دستورالعملهای مربوط به سیستمهای شبه یونیکس، لینوکس اوبونتو، macOS و سایر سیستمهای مشابه یونیکس را ببینید.
هدف : Bazel را برای ساخت یک باینری سفارشی bazel-bin\src\bazel-dev.exe
) اجرا کنید.
دستورالعمل :
Command Prompt را شروع کنید (منوی شروع > اجرا > cmd.exe)
cd
را در دایرکتوری که منابع Bazel را استخراج کرده اید (یا شبیه سازی کرده اید).به عنوان مثال اگر منابع را در فهرست اصلی خود استخراج کرده اید، اجرا کنید:
cd %USERPROFILE%\bazel-src
ساخت Bazel از منبع:
bazel build //src:bazel-dev.exe
یا می توانید
bazel build //src:bazel.exe --compilation_mode=opt
را اجرا کنید تا یک باینری کوچکتر به دست آورید اما ساخت آن کندتر است.خروجی در
bazel-bin\src\bazel-dev.exe
(یا bazelbazel-bin\src\bazel.exe
) خواهد بود.
مرحله 5: باینری ساخته شده را نصب کنید
در واقع چیزی برای نصب وجود ندارد.
خروجی مرحله قبل یک باینری بازل مستقل است. می توانید آن را در هر دایرکتوری کپی کنید و بلافاصله استفاده کنید. (اگر آن دایرکتوری در PATH شما باشد مفید است تا بتوانید "بازل" را در همه جا اجرا کنید.)
ساخت Bazel از ابتدا (بوت استرپ)
شما همچنین می توانید Bazel را از ابتدا و بدون استفاده از باینری موجود Bazel بسازید.
مرحله 1: دانلود منابع بازل (بایگانی توزیع)
(این مرحله برای همه پلتفرم ها یکسان است.)
bazel-<version>-dist.zip
از GitHub دانلود کنید، برای مثالbazel-0.28.1-dist.zip
.توجه :
- یک آرشیو توزیع مستقل و مستقل از معماری وجود دارد. هیچ بایگانی توزیع خاص معماری یا سیستم عامل وجود ندارد.
- این منابع با درخت منبع GitHub یکسان نیستند . برای بوت استرپ Bazel باید از آرشیو توزیع استفاده کنید. شما نمی توانید از درخت منبع شبیه سازی شده از GitHub استفاده کنید. (بایگانی توزیع حاوی فایلهای منبع تولید شده است که برای راهاندازی لازم هستند و بخشی از درخت منبع طبیعی Git نیستند.)
آرشیو توزیع را در جایی روی دیسک باز کنید.
باید امضای کلید آزادسازی 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 در یونیکس
یک پوسته یا پنجره ترمینال را باز کنید.
cd
به دایرکتوری که در آن آرشیو توزیع را باز کرده اید.اسکریپت کامپایل را اجرا کنید:
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 برای 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 در ویندوز
پوسته MSYS2 را باز کنید.
متغیرهای محیطی زیر را تنظیم کنید:
-
BAZEL_VS
یاBAZEL_VC
(آنها یکسان نیستند ): مسیر دایرکتوری Visual Studio (BAZEL_V S ) یا دایرکتوری Visual C++ (BAZEL_V C ) را تنظیم کنید. تنظیم یکی از آنها کافی است. BAZEL_SH
: مسیر MSYS2bash.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"
-
cd
به دایرکتوری که در آن آرشیو توزیع را باز کرده اید.اسکریپت کامپایل را اجرا کنید:
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 اجرا کنید.