Create a Debian package for sample script

  • فرض کنید :
    • یک برنامه‌ی ساده مثلا یک اسکریپت در دست دارید.
    • این اسکریپت به زبان bash نوشته شده است.
    • میخواهید این اسکریپت در قالت به بسته‌ی deb. بسته‌بندی شود.

  • برنامه :
  • کد منبع برنامه را به صورت زیر فرض کنید :
#! /bin/bash
echo "123"

  • بسته‌بندی :
  • ابتدا بسته‌های زیر را درون سیستمی که قصد بسته‌بندی بسته را درون ان دارید، نصب کنید :
# apt-get install build-essential
  • به دایرکتوری tmp/ رفته به یک دایرکتوری با نام deb یا هر نام دیگر ایجاد کنید و به آن وارید شوید :
# mkdir /tmp/deb/
# cd /tmp/deb/
  • یک دایرکتوری با نام برنامه ایجاد کنید. به عنوان مثال myprogram و به آن وارید شوید :
root@Buster:/tmp/deb# mkdir mypgoram
root@Buster:/tmp/deb# cd mypgoram/
  • یک دایرکتوری به نام DEBIAN ایجاد کنید. توجه کنید که دقیقا باید با نام DEBIAN این دایرکتوری ساخته شود :
# root@Buster:/tmp/deb/mypgoram# mkdir DEBIAN
  • درون این دایرکتوری ، یک پرونده با نام control ایجاد کنید و محتویات زیر را برای آن در نظر بگیرید :
# root@Buster:/tmp/deb/mypgoram# vim DEBIAN/control
Package: mypgoram
Version: 1.0
Section: web
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: debian.org
Description: Print specific variable on the screen
  • Package : نام بسته در جلوی این متغیر تعریف می‌شود.
  • Version : نسخه‌ی انتشار برنامه در جلوی این متغیر تعریف می‌شود.
  • Section : بخش و گروهی که این ابزار یا این بسته درون ان قرار می‌گیرد، توسط این متغیر مشخص می‌شود. به عنوان مثال یک ابزار یا یک بسته می‌تواند در گروه web باشد و …
  • Priority : اولویت و درجه‌ی اهمیت بسته توسط این متغیر مشخص می‌شود.
  • Architecture : معماری سیستم (این که بسته بر روی سیستم ۶۴ بیتی اجرا می‌شود یا ۳۲ بیتی و …) توسط این متغیر مشخص می‌شود.
  • Installed-Size : مقدار حجمی که بسته برای نصب نیاز دارد. این عدد صرفا در هنگام نصب بسته نمایش داده می‌شود و حتی می‌تواند غیر واقعی باشد.
  • Maintainer : نام شخصی که بسته بندی را انجام داده توسط این متغیر مشخص می‌شود.
  • Description : توضیحی کوتاه در خصوص کارکرد و عملکرد ابزار توسط این بخش داده می‌شود.
  • در ادامه دایرکتوری usr/bin را درون دایرکتوری mypgoram ایجاد ‌می‌کنیم و کد منبع برنامه را درون آن قرار می‌دهیم. (با این کار پس از نصب بسته بر روی سیستم، اسکریپت به مسیر usr/bin/ متنقل می‌شود.
  • برای این منظور :
root@Buster:/tmp/deb/mypgoram# mkdir -p usr/bin/
root@Buster:/tmp/deb/mypgoram# touch usr/bin/mypgoram
root@Buster:/tmp/deb/mypgoram# vim usr/bin/mypgoram

#! /bin/bash
echo "123"
  • در ادامه به دایرکتوری زیر cd کنید :
cd /tmp/deb/
  • ساختار کلی باید متناسب با خروجی زیر باشد :
root@Buster:/tmp/deb# tree mypgoram
mypgoram
├── DEBIAN
│   └── control
└── usr
└── bin
└── mypgoram

3 directories, 2 files
  • در نهایت بسته‌ی بندی را به صورت زیر آغاز کنید :
root@Buster:/tmp/deb# dpkg-deb --build mypgoram
  • در آخر یک پرونده‌ی deb. ایجاد می‌شود. برای نصب می‌توان به شکل زیر عمل کرد :
# apt install ./mypgoram.deb

  • تست شده بر روی ubuntu 18.04
  • مطالعه بیشتر در اینجا

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *