উৎস থেকে Bazel সংকলন

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে উৎস থেকে Bazel ইনস্টল করতে হয় এবং সাধারণ সমস্যার জন্য সমস্যা সমাধানের পরামর্শ প্রদান করে।

উৎস থেকে Bazel তৈরি করতে, আপনি নিম্নলিখিতগুলির মধ্যে একটি করতে পারেন:

Bazel ব্যবহার করে Bazel তৈরি করুন

সারসংক্ষেপ

  1. GitHub রিলিজ পৃষ্ঠা থেকে বা Bazelisk- এর সাথে সর্বশেষ Bazel রিলিজ পান।

  2. GitHub থেকে Bazel এর উত্স ডাউনলোড করুন এবং কোথাও এক্সট্রাক্ট করুন। বিকল্পভাবে আপনি https://github.com/bazelbuild/bazel থেকে সোর্স ট্রি ক্লোন করতে পারেন

  3. বুটস্ট্র্যাপিংয়ের মতো একই পূর্বশর্ত ইনস্টল করুন ( ইউনিক্স-এর মতো সিস্টেম বা উইন্ডোজের জন্য দেখুন)

  4. Bazel ব্যবহার করে Bazel-এর একটি ডেভেলপমেন্ট বিল্ড তৈরি করুন: 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 ) এ রয়েছে। আপনি যেখানে খুশি কপি করতে পারেন এবং পরবর্তী ইনস্টলেশন ছাড়াই অবিলম্বে ব্যবহার করতে পারেন।

বিস্তারিত নির্দেশাবলী নীচে অনুসরণ করুন.

ধাপ 1: সর্বশেষ Bazel রিলিজ পান

লক্ষ্য : Bazel এর একটি রিলিজ সংস্করণ ইনস্টল বা ডাউনলোড করুন। নিশ্চিত করুন যে আপনি একটি টার্মিনালে bazel টাইপ করে এটি চালাতে পারেন।

কারণ : একটি গিটহাব সোর্স ট্রি থেকে ব্যাজেল তৈরি করতে, আপনার একটি প্রাক-বিদ্যমান বেজেল বাইনারি প্রয়োজন। আপনি একটি প্যাকেজ ম্যানেজার থেকে একটি ইনস্টল করতে পারেন বা GitHub থেকে একটি ডাউনলোড করতে পারেন। বেজেল ইনস্টল করা দেখুন। (অথবা আপনি স্ক্র্যাচ থেকে তৈরি করতে পারেন (বুটস্ট্র্যাপ) ।)

সমস্যা সমাধান :

  • আপনি যদি টার্মিনালে bazel টাইপ করে বেজেল চালাতে না পারেন:

    • হতে পারে আপনার Bazel বাইনারি এর ডিরেক্টরি PATH-এ নেই।

      এটা একটা বড় সমস্যা নয়। bazel টাইপ করার পরিবর্তে, আপনাকে সম্পূর্ণ পাথ টাইপ করতে হবে।

    • হতে পারে Bazel বাইনারি নিজেই bazel.exe bazel উইন্ডোজে) বলা হয় না।

      এটা একটা বড় সমস্যা নয়। আপনি হয় বাইনারিটির নাম পরিবর্তন করতে পারেন, বা bazel এর পরিবর্তে bazel নাম টাইপ করতে পারেন।

    • হয়তো বাইনারি এক্সিকিউটেবল নয় (ইউনিক্সে)।

      আপনাকে অবশ্যই chmod +x /path/to/bazel চালিয়ে বাইনারি এক্সিকিউটেবল করতে হবে।

ধাপ 2: GitHub থেকে Bazel এর উৎসগুলি ডাউনলোড করুন

আপনি যদি গিট এর সাথে পরিচিত হন তবে শুধু গিট ক্লোন https://github.com/bazelbuild/bazel

অন্যথায়:

  1. একটি জিপ ফাইল হিসাবে সর্বশেষ উত্স ডাউনলোড করুন.

  2. কোথাও বিষয়বস্তু নিষ্কাশন.

    উদাহরণস্বরূপ আপনার হোম ডিরেক্টরির অধীনে একটি bazel-src ডিরেক্টরি তৈরি করুন এবং সেখানে এক্সট্রাক্ট করুন।

ধাপ 3: পূর্বশর্ত ইনস্টল করুন

বুটস্ট্র্যাপিংয়ের জন্য একই পূর্বশর্তগুলি ইনস্টল করুন (নীচে দেখুন) -- JDK, C++ কম্পাইলার, MSYS2 (যদি আপনি উইন্ডোজে তৈরি করেন) ইত্যাদি।

ধাপ 4a: উবুন্টু লিনাক্স, ম্যাকওএস এবং অন্যান্য ইউনিক্স-এর মতো সিস্টেমে বেজেল তৈরি করুন

উইন্ডোজের জন্য নির্দেশাবলীর জন্য, উইন্ডোজে বিল্ড বেজেল দেখুন।

লক্ষ্য : একটি কাস্টম ব্যাজেল বাইনারি তৈরি করতে Bazel চালান ( bazel-bin/src/bazel-dev )।

নির্দেশনা :

  1. একটি ব্যাশ টার্মিনাল শুরু করুন

  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 ) এ।

ধাপ 4 বি: উইন্ডোজে বেজেল তৈরি করুন

ইউনিক্স-সদৃশ সিস্টেমগুলির জন্য নির্দেশাবলীর জন্য, উবুন্টু লিনাক্স, ম্যাকওএস এবং অন্যান্য ইউনিক্স-সদৃশ সিস্টেমগুলি দেখুন।

লক্ষ্য : একটি কাস্টম ব্যাজেল বাইনারি তৈরি করতে ব্যাজেল চালান ( bazel-bin\src\bazel-dev.exe )।

নির্দেশনা :

  1. স্টার্ট কমান্ড প্রম্পট (স্টার্ট মেনু > রান > "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-bin\src\bazel.exe )।

ধাপ 5: নির্মিত বাইনারি ইনস্টল করুন

আসলে, ইনস্টল করার কিছুই নেই।

পূর্ববর্তী ধাপের আউটপুট একটি স্বয়ংসম্পূর্ণ Bazel বাইনারি। আপনি যেকোনো ডিরেক্টরিতে এটি অনুলিপি করতে পারেন এবং অবিলম্বে ব্যবহার করতে পারেন। (এটি দরকারী যদি সেই ডিরেক্টরিটি আপনার PATH-এ থাকে যাতে আপনি সর্বত্র "বেজেল" চালাতে পারেন।)


স্ক্র্যাচ থেকে বেজেল তৈরি করুন (বুটস্ট্র্যাপিং)

আপনি একটি বিদ্যমান Bazel বাইনারি ব্যবহার না করে স্ক্র্যাচ থেকে Bazel তৈরি করতে পারেন।

ধাপ 1: Bazel এর উত্সগুলি ডাউনলোড করুন (বন্টন সংরক্ষণাগার)

(এই ধাপটি সমস্ত প্ল্যাটফর্মের জন্য একই।)

  1. GitHub থেকে bazel-<version>-dist.zip ডাউনলোড করুন, উদাহরণস্বরূপ bazel-0.28.1-dist.zip

    মনোযোগ :

    • একটি একক, স্থাপত্য-স্বাধীন বিতরণ সংরক্ষণাগার আছে। কোনো আর্কিটেকচার-নির্দিষ্ট বা OS-নির্দিষ্ট বিতরণ সংরক্ষণাগার নেই।
    • এই উত্সগুলি GitHub উত্স গাছের মতো নয় ৷ Bazel বুটস্ট্র্যাপ করতে আপনাকে বিতরণ সংরক্ষণাগার ব্যবহার করতে হবে। আপনি GitHub থেকে ক্লোন করা একটি উৎস গাছ ব্যবহার করতে পারবেন না। (ডিস্ট্রিবিউশন আর্কাইভে জেনারেট করা সোর্স ফাইল রয়েছে যা বুটস্ট্র্যাপিংয়ের জন্য প্রয়োজন এবং সাধারণ গিট সোর্স ট্রির অংশ নয়।)
  2. ডিস্কের কোথাও ডিস্ট্রিবিউশন আর্কাইভ আনপ্যাক করুন।

    আপনি Bazel এর রিলিজ কী 3D5919B448457EE0 দ্বারা তৈরি স্বাক্ষর যাচাই করা উচিত।

ধাপ 2a: উবুন্টু লিনাক্স, ম্যাকওএস এবং অন্যান্য ইউনিক্সের মতো সিস্টেমে বুটস্ট্র্যাপ ব্যাজেল

উইন্ডোজের নির্দেশাবলীর জন্য, উইন্ডোজে বুটস্ট্র্যাপ বেজেল দেখুন।

2.1। পূর্বশর্ত ইনস্টল করুন

  • বাশ

  • zip, unzip

  • C++ বিল্ড টুলচেন

  • জেডিকে। সংস্করণ 11 প্রয়োজন.

  • পাইথন সংস্করণ 2 এবং 3 সমর্থিত, তাদের মধ্যে একটি ইনস্টল করা যথেষ্ট।

উদাহরণস্বরূপ উবুন্টু লিনাক্সে আপনি নিম্নলিখিত কমান্ড ব্যবহার করে এই প্রয়োজনীয়তাগুলি ইনস্টল করতে পারেন:

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

2.2। ইউনিক্সে বুটস্ট্র্যাপ বেজেল

  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: উইন্ডোজে বুটস্ট্র্যাপ বেজেল

ইউনিক্স-সদৃশ সিস্টেমের জন্য নির্দেশাবলীর জন্য, উবুন্টু লিনাক্স, ম্যাকওএস এবং অন্যান্য ইউনিক্স-সদৃশ সিস্টেমে বুটস্ট্র্যাপ বেজেল দেখুন।

2.1। পূর্বশর্ত ইনস্টল করুন

  • MSYS2 শেল

  • জিপ এবং আনজিপ করার জন্য MSYS2 প্যাকেজ। MSYS2 শেলে নিম্নলিখিত কমান্ডটি চালান:

    pacman -S zip unzip patch
    
  • ভিজ্যুয়াল C++ কম্পাইলার। ভিজ্যুয়াল স্টুডিও 2015-এর অংশ হিসাবে বা আরও নতুন, অথবা ভিজ্যুয়াল স্টুডিও 2017-এর জন্য সর্বশেষ বিল্ড টুল ইনস্টল করে ভিজ্যুয়াল C++ কম্পাইলার ইনস্টল করুন।

  • জেডিকে। সংস্করণ 11 প্রয়োজন.

  • পাইথন সংস্করণ 2 এবং 3 সমর্থিত, তাদের মধ্যে একটি ইনস্টল করা যথেষ্ট। আপনার উইন্ডোজ-নেটিভ সংস্করণ প্রয়োজন ( https://www.python.org থেকে ডাউনলোডযোগ্য)। MSYS2 এ প্যাকম্যানের মাধ্যমে ইনস্টল করা সংস্করণগুলি কাজ করবে না।

2.2। উইন্ডোজে বুটস্ট্র্যাপ বেজেল

  1. MSYS2 শেল খুলুন।

  2. নিম্নলিখিত পরিবেশ ভেরিয়েবল সেট করুন:

    • হয় BAZEL_VS বা BAZEL_VC (তারা একই নয় ): ভিজ্যুয়াল স্টুডিও ডিরেক্টরি (BAZEL_V S ) বা ভিজ্যুয়াল 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 এ স্থাপন করা হয়। এটি একটি এমবেডেড JDK ছাড়াই একটি স্বয়ংসম্পূর্ণ ব্যাজেল বাইনারি। আপনি এটি যে কোনো জায়গায় অনুলিপি করতে পারেন বা এটি জায়গায় ব্যবহার করতে পারেন। সুবিধার জন্য, আপনার PATH এ থাকা একটি ডিরেক্টরিতে এই বাইনারিটি অনুলিপি করুন।

একটি পুনরুত্পাদনযোগ্য উপায়ে bazel.exe বাইনারি তৈরি করতে, "সংকলন স্ক্রিপ্ট চালান" ধাপে SOURCE_DATE_EPOCH সেট করুন।

আপনাকে MSYS2 শেল থেকে Bazel চালানোর দরকার নেই। আপনি কমান্ড প্রম্পট ( cmd.exe ) বা PowerShell থেকে Bazel চালাতে পারেন।