تجميع البيانات من المصدر

تشرح هذه الصفحة طريقة تثبيت Bazel من المصدر، وتقدّم نصائح لتحديد المشاكل الشائعة وحلّها.

لإنشاء Bazel من المصدر، يمكنك تنفيذ أحد الإجراءات التالية:

لعبة Bazel باستخدام Bazel

الملخّص

  1. احصل على أحدث إصدار من Bazel من صفحة إصدار GitHub أو من خلال Bazelisk.

  2. نزِّل مصادر Bazel&#39s من GitHub واستخرجها من مكان ما. يمكنك بدلاً من ذلك git المستنسَج لشجرة المصدر من https://github.com/bazelbuild/bazel.

  3. ثبِّت المتطلبات الأساسية نفسها كما في نظام التشغيل (اطّلِع على لأنظمة تشبه نظام التشغيل Unix أو في نظام التشغيل Windows).

  4. بناء إصدار من Bazel باستخدام Bazel: bazel build //src:bazel-dev (أو bazel build //src:bazel-dev.exe على Windows)

  5. يكون البرنامج الثنائي الناتج بقيمة 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

غير ذلك:

  1. نزِّل أحدث المصادر كملف zip.

  2. استخراج المحتوى في مكان ما

    على سبيل المثال، أنشئ دليل bazel-src ضمن الدليل الرئيسي واستخرجه.

الخطوة 3: تثبيت المتطلبات الأساسية

ثبّت المتطلبات الأساسية نفسها كما هو الحال عند تشغيل نظام التشغيل (انظر أدناه) -- JDK وC++ وMSYS2 (إذا كنت تعمل على نظام التشغيل Windows)، وما إلى ذلك.

الخطوة 4a: إنشاء Bazel على Ubuntu Linux وmacOS وأنظمة أخرى شبيهة بـ Unix

للحصول على تعليمات نظام التشغيل Windows، يُرجى الاطِّلاع على إصدار Bazel على نظام التشغيل Windows.

الهدف: استخدِم تطبيق Bazel لإنشاء برنامج ثنائي مخصّص للعبة Bazel (bazel-bin/src/bazel-dev).

التعليمات:

  1. بدء محطة دفع Bash

  2. cd في الدليل الذي استخرجت فيه (أو انسخته) مصادر Bazel's.

    على سبيل المثال، في حال استخراج المصادر ضمن الدليل الرئيسي، يمكنك تنفيذ ما يلي:

    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).

الخطوة 4(ب): إنشاء Bazel على نظام التشغيل Windows

للحصول على تعليمات حول الأنظمة التي تشبه Unix، يمكنك الاطّلاع على Ubuntu Linux وmacOS وأنظمة أخرى تشبه Unix.

الهدف: تشغيل Bazel لإنشاء ثنائية ثنائية على Bazel (bazel-bin\src\bazel-dev.exe).

التعليمات:

  1. بدء موجه الأوامر (Start Start > Run > "cmd.exe")

  2. cd في الدليل الذي استخرجت فيه (أو انسخته) مصادر Bazel's.

    على سبيل المثال، في حال استخراج المصادر ضمن الدليل الرئيسي، يمكنك تنفيذ ما يلي:

    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).

الخطوة 5: تثبيت البرنامج الثنائي المضمَّن

في الواقع، لا يوجد شيء لتثبيته.

نتيجة الخطوة السابقة هي منصة Bazel الثنائية المستقلة. يمكنك نسخها إلى أي دليل واستخدامها على الفور. (يكون مفيدًا إذا كان هذا الدليل موجودًا على مسار PATH حتى تتمكن من تشغيل "bazel" في كل مكان).


إنشاء Bazel من البداية (مدّة التشغيل)

يمكنك أيضًا إنشاء Bazel من البداية، بدون استخدام برنامج ثنائي حالي.

الخطوة 1: تنزيل مصادر Bazel&#99 (أرشيف التوزيع)

(هذه الخطوة هي نفسها في جميع الأنظمة الأساسية).

  1. تنزيل bazel-<version>-dist.zip من GitHub، مثلاً bazel-0.28.1-dist.zip

    جذب الانتباه:

    • يتوفّر أرشيف توزيع واحد مستقل عن البنية. ليست هناك أرشيفات توزيع خاصة بالبنية أو نظام التشغيل.
    • هذه المصادر ليست مختلفة عن شجرة ملفات GitHub. يجب استخدام أرشيف التوزيع لبدء تشغيل Bazel. لا يمكنك استخدام شجرة المصدر التي يتم نسخها من GitHub. (يحتوي أرشيف التوزيع على ملفات مصدر تم إنشاؤها ومطلوبة لعملية التشغيل للتشغيل، وهي ليست جزءًا من العرض التدرّجي المصدر لمصدر Git.)
  2. يجب فك ضغط أرشيف التوزيع في مكان معيّن على القرص.

    يجب التحقق من التوقيع الذي حصل عليه 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

  1. افتح واجهة أوامر أو نافذة محطة دفع.

  2. cd إلى الدليل الذي تم فك ضغط أرشيف التوزيع فيه.

  3. شغِّل النص البرمجي للتجميع: 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 في الخطوة "تشغيل النص البرمجي للتجميع&quot؛

الخطوة 2-ب: Boststrap Bazel على نظام التشغيل Windows

للحصول على تعليمات حول الأنظمة التي تشبه Unix، يمكنك الاطّلاع على Bootstrap Bazel على Ubuntu Linux وmacOS وغيره من الأنظمة التي تشبه Unix.

2.1. تثبيت المتطلبات الأساسية

  • واجهة النظام MSYS2

  • حِزم 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

  1. افتح واجهة أوامر MSYS2.

  2. اضبط متغيّرات البيئة التالية:

    • إما BAZEL_VS أو BAZEL_VC (ليس متطابقين): اضبط على المسار إلى دليل Visual Studio (BAZEL_VS) أو على الدليل المرئي C++ (BAZEL_VC). يُمْكِنُ ضَبْطْ أَحَدِ الْإِجْرَاءَاتْ.
    • BAZEL_SH: مسار MSYS2 bash.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"
    
  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 في الخطوة "تشغيل النص البرمجي للتجميع&quot؛

لست بحاجة إلى تشغيل Bazel من واجهة برمجة التطبيقات MSYS2. يمكنك تشغيل Bazel من موجِّه الأوامر (cmd.exe) أو PowerShell.