- فرض کنید :
- یک برنامهی ساده مثلا یک اسکریپت در دست دارید.
- این اسکریپت به زبان 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
- مطالعه بیشتر در اینجا