تشرح هذه الصفحة طريقة تثبيت Bazel من المصدر، وتقدّم نصائح لتحديد المشاكل الشائعة وحلّها.
لإنشاء Bazel من المصدر، يمكنك تنفيذ أحد الإجراءات التالية:
يمكنك إنشاؤها باستخدام برنامج ثنائي حالي على Bazel
يمكنك إنشاؤه بدون ثنائي Bazel ثنائي معروف باسم bootstrapping.
لعبة Bazel باستخدام Bazel
الملخّص
احصل على أحدث إصدار من Bazel من صفحة إصدار GitHub أو من خلال Bazelisk.
نزِّل مصادر Bazel's من GitHub واستخرجها من مكان ما. يمكنك بدلاً من ذلك git المستنسَج لشجرة المصدر من https://github.com/bazelbuild/bazel.
ثبِّت المتطلبات الأساسية نفسها كما في نظام التشغيل (اطّلِع على لأنظمة تشبه نظام التشغيل Unix أو في نظام التشغيل Windows).
بناء إصدار من Bazel باستخدام Bazel:
bazel build //src:bazel-dev(أوbazel build //src:bazel-dev.exeعلى Windows)يكون البرنامج الثنائي الناتج بقيمة
bazel-bin/src/bazel-dev(أوbazel-bin\src\bazel-dev.exeعلى نظام التشغيل Windows). يمكنك نسخ المحتوى في أي مكان، واستخدامه على الفور بدون الحاجة إلى المزيد من التثبيت.
في ما يلي تعليمات تفصيلية.
الخطوة 1: الحصول على أحدث إصدار من Bazel
الهدف: تثبيت إصدار من Bazel أو تنزيله تأكَّد من تشغيله
عن طريق كتابة bazel في الوحدة الطرفية.
السبب: لإنشاء Bazel من شجرة مصدر GitHub، تحتاج إلى برنامج ثنائي Bazel متوفّر مسبقًا. يمكنك تثبيت واحدة من مدير حِزم أو تنزيل واحدة من GitHub. يُرجى الاطّلاع على تثبيت Bazel. (أو يمكنك الإنشاء من نقطة الصفر (bootstrap).)
تحديد المشاكل وحلّها:
إذا لم تتمكّن من تشغيل Bazel من خلال كتابة
bazelفي الوحدة الطرفية:قد لا يكون دليل Bazel الثنائي الخاص بك على PATH.
هذه ليست مشكلة كبيرة. بدلاً من كتابة
bazel، ستحتاج إلى كتابة المسار الكامل.قد لا يُسمى البرنامج الثنائي Bazel نفسه
bazel(على نظام التشغيل Unixes) أوbazel.exe(على نظام التشغيل Windows).هذه ليست مشكلة كبيرة. يمكنك إما إعادة تسمية البرنامج الثنائي أو كتابة اسم البرنامج الثنائي بدلاً من
bazel.من المحتمل أنّ البرنامج الثنائي غير قابل للتنفيذ (على نظام التشغيل Unixes).
يجب جعل البرنامج الثنائي التنفيذي قابلاً للتنفيذ من خلال تشغيل
chmod +x /path/to/bazel.
الخطوة 2: تنزيل مصادر Bazel’s من GitHub
إذا كنت معتادًا على أداة Git، لا تترتّب عليك سوى الأمر github https://github.com/bazelbuild/bazel
غير ذلك:
نزِّل أحدث المصادر كملف zip.
استخراج المحتوى في مكان ما
على سبيل المثال، أنشئ دليل
bazel-srcضمن الدليل الرئيسي واستخرجه.
الخطوة 3: تثبيت المتطلبات الأساسية
ثبّت المتطلبات الأساسية نفسها كما هو الحال عند تشغيل نظام التشغيل (انظر أدناه) -- JDK وC++ وMSYS2 (إذا كنت تعمل على نظام التشغيل Windows)، وما إلى ذلك.
الخطوة 4a: إنشاء Bazel على Ubuntu Linux وmacOS وأنظمة أخرى شبيهة بـ Unix
للحصول على تعليمات نظام التشغيل Windows، يُرجى الاطِّلاع على إصدار Bazel على نظام التشغيل Windows.
الهدف: استخدِم تطبيق Bazel لإنشاء برنامج ثنائي مخصّص للعبة Bazel (bazel-bin/src/bazel-dev).
التعليمات:
بدء محطة دفع Bash
cdفي الدليل الذي استخرجت فيه (أو انسخته) مصادر Bazel's.على سبيل المثال، في حال استخراج المصادر ضمن الدليل الرئيسي، يمكنك تنفيذ ما يلي:
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).
الخطوة 4(ب): إنشاء Bazel على نظام التشغيل Windows
للحصول على تعليمات حول الأنظمة التي تشبه Unix، يمكنك الاطّلاع على Ubuntu Linux وmacOS وأنظمة أخرى تشبه Unix.
الهدف: تشغيل Bazel لإنشاء ثنائية ثنائية على Bazel
(bazel-bin\src\bazel-dev.exe).
التعليمات:
بدء موجه الأوامر (Start Start > Run > "cmd.exe")
cdفي الدليل الذي استخرجت فيه (أو انسخته) مصادر Bazel's.على سبيل المثال، في حال استخراج المصادر ضمن الدليل الرئيسي، يمكنك تنفيذ ما يلي:
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(أوbazel-bin\src\bazel.exe).
الخطوة 5: تثبيت البرنامج الثنائي المضمَّن
في الواقع، لا يوجد شيء لتثبيته.
نتيجة الخطوة السابقة هي منصة Bazel الثنائية المستقلة. يمكنك نسخها إلى أي دليل واستخدامها على الفور. (يكون مفيدًا إذا كان هذا الدليل موجودًا على مسار PATH حتى تتمكن من تشغيل "bazel" في كل مكان).
إنشاء Bazel من البداية (مدّة التشغيل)
يمكنك أيضًا إنشاء Bazel من البداية، بدون استخدام برنامج ثنائي حالي.
الخطوة 1: تنزيل مصادر Bazelc (أرشيف التوزيع)
(هذه الخطوة هي نفسها في جميع الأنظمة الأساسية).
تنزيل
bazel-<version>-dist.zipمن GitHub، مثلاًbazel-0.28.1-dist.zipجذب الانتباه:
- يتوفّر أرشيف توزيع واحد مستقل عن البنية. ليست هناك أرشيفات توزيع خاصة بالبنية أو نظام التشغيل.
- هذه المصادر ليست مختلفة عن شجرة ملفات GitHub. يجب استخدام أرشيف التوزيع لبدء تشغيل Bazel. لا يمكنك استخدام شجرة المصدر التي يتم نسخها من GitHub. (يحتوي أرشيف التوزيع على ملفات مصدر تم إنشاؤها ومطلوبة لعملية التشغيل للتشغيل، وهي ليست جزءًا من العرض التدرّجي المصدر لمصدر Git.)
يجب فك ضغط أرشيف التوزيع في مكان معيّن على القرص.
يجب التحقق من التوقيع الذي حصل عليه Bazel'sمفتاح الإصدار 3D5919B448457EE0.
الخطوة 2 (أ): Poststrap Bazel على Ubuntu Linux وmacOS وغيرها من الأنظمة التي تشبه Unix
للحصول على تعليمات حول نظام التشغيل Windows، يُرجى الاطِّلاع على Bootstrap Bazel على نظام التشغيل Windows.
2.1. تثبيت المتطلبات الأساسية
الفرش
zip، فك ضغط
سلسلة أدوات لإنشاء C++
اليابانية الإصدار 11 مطلوب.
Python ويمكنك استخدام الإصدارين 2 و3، حيث يكفي تثبيت أحدهما.
على سبيل المثال، في نظام التشغيل Ubuntu Linux، يمكنك تثبيت هذه المتطلبات باستخدام الأمر التالي:
sudo apt-get install build-essential openjdk-11-jdk python zip unzip
2.2. Boststrap Bazel على Unix
افتح واجهة أوامر أو نافذة محطة دفع.
cdإلى الدليل الذي تم فك ضغط أرشيف التوزيع فيه.شغِّل النص البرمجي للتجميع:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.
يتم وضع المخرجات المجمَّعة في output/bazel. هذا برنامج بازل مستقل بدون رمز JDK مضمّن. يمكنك نسخها في أي مكان أو استخدامها في مكانها. لتسهيل العملية، يمكنك نسخ هذا البرنامج الثنائي إلى دليل يتم عرضه على
PATH (مثل /usr/local/bin على نظام التشغيل Linux).
لإنشاء برنامج ثنائي bazel بطريقة قابلة للتكرار، اضبط أيضًا
SOURCE_DATE_EPOCH
في الخطوة "تشغيل النص البرمجي للتجميع"؛
الخطوة 2-ب: Boststrap Bazel على نظام التشغيل Windows
للحصول على تعليمات حول الأنظمة التي تشبه Unix، يمكنك الاطّلاع على Bootstrap Bazel على Ubuntu Linux وmacOS وغيره من الأنظمة التي تشبه Unix.
2.1. تثبيت المتطلبات الأساسية
حِزم MSYS2 لـ zip وفك ضغط شغِّل الأمر التالي في واجهة أوامر MSYS2:
pacman -S zip unzip patchالعارض المرئي C++ : يمكنك تثبيت برنامج التجميع المرئي C++ إمّا كجزء من Visual Studio 2015 أو الإصدارات الأحدث أو عن طريق تثبيت أحدث إصدار من أدوات إنشاء الإصدار 2017 من Visual Studio.
اليابانية الإصدار 11 مطلوب.
Python ويمكنك استخدام الإصدارين 2 و3، حيث يكفي تثبيت أحدهما. يجب أن يكون لديك إصدار متوافق مع نظام التشغيل Windows (يمكن تنزيله من https://www.python.org). لن تعمل الإصدارات المثبَّتة عبر pacman في MSYS2.
2.2. برنامج Boststrap Bazel على أجهزة Windows
افتح واجهة أوامر MSYS2.
اضبط متغيّرات البيئة التالية:
- إما
BAZEL_VSأوBAZEL_VC(ليس متطابقين): اضبط على المسار إلى دليل Visual Studio (BAZEL_VS) أو على الدليل المرئي C++ (BAZEL_VC). يُمْكِنُ ضَبْطْ أَحَدِ الْإِجْرَاءَاتْ. BAZEL_SH: مسار MSYS2bash.exeيمكنك الاطّلاع على الأمر في الأمثلة أدناه.يجب عدم ضبط هذه السياسة على
C:\Windows\System32\bash.exe. (يتوفّر لديك هذا الملف في حال تثبيت نظام التشغيل Windows الفرعي لنظام التشغيل Linux). 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"- إما
cdإلى الدليل الذي تم فك ضغط أرشيف التوزيع فيه.شغِّل النص البرمجي للتجميع:
env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh
يتم وضع المخرجات المجمَّعة في output/bazel.exe. هذا برنامج بازل مستقل بدون رمز JDK مضمّن. يمكنك نسخها في أي مكان أو استخدامها في مكانها. لتسهيل العملية، انسخ هذا البرنامج الثنائي إلى دليل يتم عرضه على PATH.
لإنشاء برنامج ثنائي bazel.exe بطريقة قابلة للتكرار، اضبط أيضًا
SOURCE_DATE_EPOCH
في الخطوة "تشغيل النص البرمجي للتجميع"؛
لست بحاجة إلى تشغيل Bazel من واجهة برمجة التطبيقات MSYS2. يمكنك تشغيل Bazel من موجِّه الأوامر (cmd.exe) أو PowerShell.