- فرض کنید :
- یک برنامهی ساده مثلا یک اسکریپت در دست دارید.
- این اسکریپت به زبان bash نوشته شده است.
- میخواهید این اسکریپت در قالت به بستهی deb. بستهبندی شود.
- برنامه :
- کد منبع برنامه را به صورت زیر فرض کنید :
|
1 2 |
#! /bin/bash echo "123" |
- بستهبندی :
- ابتدا بستههای زیر را درون سیستمی که قصد بستهبندی بسته را درون ان دارید، نصب کنید :
|
1 |
# apt-get install build-essential |
- به دایرکتوری tmp/ رفته به یک دایرکتوری با نام deb یا هر نام دیگر ایجاد کنید و به آن وارید شوید :
|
1 2 |
# mkdir /tmp/deb/ # cd /tmp/deb/ |
- یک دایرکتوری با نام برنامه ایجاد کنید. به عنوان مثال myprogram و به آن وارید شوید :
|
1 2 |
root@Buster:/tmp/deb# mkdir mypgoram root@Buster:/tmp/deb# cd mypgoram/ |
- یک دایرکتوری به نام DEBIAN ایجاد کنید. توجه کنید که دقیقا باید با نام DEBIAN این دایرکتوری ساخته شود :
|
1 |
# root@Buster:/tmp/deb/mypgoram# mkdir DEBIAN |
- درون این دایرکتوری ، یک پرونده با نام control ایجاد کنید و محتویات زیر را برای آن در نظر بگیرید :
|
1 2 3 4 5 6 7 8 9 10 |
# 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/ متنقل میشود.
- برای این منظور :
|
1 2 3 4 5 6 |
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 کنید :
|
1 |
cd /tmp/deb/ |
- ساختار کلی باید متناسب با خروجی زیر باشد :
|
1 2 3 4 5 6 7 8 9 |
root@Buster:/tmp/deb# tree mypgoram mypgoram ├── DEBIAN │ └── control └── usr └── bin └── mypgoram 3 directories, 2 files |
- در نهایت بستهی بندی را به صورت زیر آغاز کنید :
|
1 |
root@Buster:/tmp/deb# dpkg-deb --build mypgoram |
- در آخر یک پروندهی deb. ایجاد میشود. برای نصب میتوان به شکل زیر عمل کرد :
|
1 |
# apt install ./mypgoram.deb |
- تست شده بر روی ubuntu 18.04
- مطالعه بیشتر در اینجا