Create a Standard Debian package for free-ram program that compatible with systemd

اهداف

  • free-ram یک برنامه است که توسط systemd هر یک دقیقه اجرا می‌شود.
  • در این آموزش قصد داریم این برنامه را بسته بندی کنیم طوری که توسط systemd قابل فهم باشد.

پیش‌نیازها

  • برای این منظور ابتدا یک سیستم ubuntu 16.04 ساخته و آن را آپدیت نمایید.
  • بسته‌های زیر را نصب نمایید :


ساخت دایکتوری برنامه

  • یک دایرکتوری با هر نام ایجاد کنید. به عنوان مثال :

  • یک دایرکتوری با نام برنامه ایجاد کنید. (به فرمت ساخت توجه نمایید.)

  • وارد دایرکتوری زیر شوید :


دریافت سورس برنامه

  • سورس برنامه را از مخزن دریافت نمایید.


ساخت دایکتوری debian و متعلقات

  • حال وارد دایکتوری بسته‌بندی برنامه شوید.

  • دستور زیر را اجرا نمایید :

  • با اجرای دستور بالا یک دایکتوری به نام debian همراه با نمونه پرونده‌های مورد نیاز ساخته می‌شود.

  • همچنین یک پرونده با نام orig از برنامه نیز ساخته می‌شود.


حذف پرونده‌های زائد

  • در ادامه وارد دایرکتوری debian شوید.

  • پیشنهاد می‌شود پرونده‌های زیر را پاک نمایید :


اصلاح پرونده‌ی changelog

  • پرونده‌ی changelog را باز کنید و آن را به صورت زیر ویرایش نمایید.

  • نسخه‌ی خام پرونده‌ی بالا به صورت زیر است :

  • آن را به صورت زیر ورایش نمایید :


اصلاح پرونده‌ی compat

  • مقدار عدد ۴ را برای پرونده‌ی compat در نظر بگیرید. برای این منظور :


اصلاح پرونده‌ی control

  • در ادامه پرونده‌ی control را باز نمایید.

  • محتویات پیشفرض این پرونده به شرح زیر است :

  • محتویات زیر را برای این برنامه در نظر بگیرید :


اصلاح پرونده‌ی copyright

  • پرونده‌ی copyright کاملا شخصی است. می‌توانید آن را به صورت یک تک ویرایش نمایید.


اصلاح پرونده‌ی install.

  • وارد دایرکتوری /root/debs/ شوید.

  • دایکتوری زیر را ایجاد کنید.

  • پرونده‌ی free-ram.sh را درون دایرکتوری زیر کپی کنید :

  • پرونده‌ی free-ram.service را درون دایکتوری debian قرار دهید.

  • به دایکتوری debian برگردید.

  • پرونده‌ی free-ram1.install را به free-ram.install تغییر دهید.
  • محتویات پیشفرض پرونده‌ی free-ram.install به صورت زیر است :

  • آن را به شکل زیر ویرایش کنید.


اصلاح پرونده‌ی rules

  • پرونده‌ی rules را باز کنید.

  • محتویات پیشفرض این پرونده به شرح زیر است :

  • آز آنجایی که قصد استفاده از systemd را داریم، لذا پرونده‌ی rules را به شکل زیر ویرایش کنید :


اصلاح پرونده‌ی source/format

  • در ادامه پرونده‌ی format را باز نمایید.

  • محتویات پیش‌فرض این فایل (ممکن است) به صورت زیر باشد :

  • محتویات زیر را برای پرونده‌ی format در نظر بگیرید :

  • دلیل این تغییر را در این می‌توان دانست که این بسته‌بندی تنها حاوی یک اسکریپت ساده بوده که توسط خود شخص بسته بند برنامه نویسی شده است.
  • لازم به ذکر است که در این حالت نیازی به پرونده‌ی tar مربوط به سورس برنامه نیست.
  • به طور کلی زمانی از native استفاده می‌شود که توسعه‌ی سورس توسط خود بسته‌بند صورت گرفته باشد فلذا تغییرات درون سورس (آپدیت و …) نیز درون سورس اصلی صورت گرفته و دیگر نیاز به patch و استفاده از دایکتوری patch نیست.
  • زمانی از quilt استفاده می‌شود که توسعه سورس توسط خود بسته‌بند صورت نگرفته باشد. فلذا در این حالت نیاز به پرونده‌ی tar سورس اصلی در روند بسته‌بندی است. همچنین در این حالت اگر قصد تغییراتی در سورس را دارید، باید آن را در قالب patch درون دایکتوری patch اعمال نمایید.


شروع بسته‌بندی

  • برای این منظور یک دایکتوری عقب بیایید.

  • دستور زیر را برای بسته‌بندی اجرا نمایید :

  • در صورتی که اجرا به صورت موفقیت آمیز طی شده باشد. با خروجی‌ای مشابه زیر روبه‌رو خواهید شد.

  • در صورتی که دو دایکتوری عقب‌تر را ls بگیرید، می‌بینید که پرونده‌های زیر ایجاد شده است. (رنگ قرمز)


بررسی پرونده‌ی DEB توسط ابزار mc

  • برای این منظور ابتدا وارد دو دایکتوری عقب‌تر شوید.

  • حال دستور mc را اجرا نمایید :

  • وارد پرونده‌ی deb. شوید.
  • در صورتی که بسته بندی درست انجام شده باشد باید بتوانید دایکتوری CONTENTS را ببینید.
  • این دایکتوری حاوی پرونده‌های برنامه (در اینجا پرونده‌ی free-ram.service و free-ram) میباشد.

تمیز کردن دایکتوری DEBIAN

  • بعد از build یک سری پرونده درون دایکتوری DEBIAN ساخته می‌شود.
  • برای پاک کردن این پرونده‌ها (مثلا برای دوباره build کردن) به صورت زیر عمل نمایید.