با سلامانگیزهی اینکه برم دنبال ساختن پکیج deb برای نرمافزارهایی که سورسشون فقط هست، نرمافزار
انوار بود.
این راهنما دو نوع از نرمافزار رو میتونه به deb تبدیل کنه:
۱- برنامههایی که با دستورات
./configure
make
sudo make install میشه از سورس نصبشون کرد.
خیلی راحت میشه از این برنامه ها فایل deb تهیه کرد.
۲- برنامههایی که با دستور qmake ساخته شدهاند. اغلب این برنامهها با qt نوشته شدهاند.
روش اول-بستههای نوع اول:طبق روش معمول نصب اینگونه برنامهها ابتدا دو دستور زیر را اجرا میکنیم:
./configuremakeسپس بجای دستور
sudo make installاز دستور
sudo checkinstallاستفاده میکنیم. با دستور بالا هم برنامه نصب میشود و هم یک پکیج deb در همان پوشهی سورس برنامه ساخته میشود.
نکته: مطمئن نیستم اما فکر میکنم اگر در دستور آخر از sudo استفاده نکنید، فقط فایل deb ساخته میشود ولی برنامه نصب نمیشود.
روش اول - بستههای نوع دوم:این بستهها معمولا با دستورات زیر کانفیگ و کامپایل میشوند
qmakeOR
qmake-qt4AND
makeدر اینجا برای نصب و ساخت بستهی deb، از دستور سوم در بالا استفاده میکنیم یعنی:
sudo checkinstallروش دوم:sudo apt-get install build-essential devscripts ubuntu-dev-tools debhelper dh-make diff patch gnupg fakeroot lintianاز پوشهی محتوی سورس برنامه یک فایل tar.gz تهیه میکنیم. به عنوان مثال اسم برنامهی ما helloword است:
tar -xvf helloworld-1.0.tar.gzاگر در نام ساختهشده - وجود دارد، آن را به _ تغییر نام میدهیم و یک orig هم به انتهای نام اضافه میکنیم:(این رو خودم هم نمیدونم چرا)
cp helloworld-1.0.tar.gz helloworld_1.0.orig.tar.gzحال در ترمینال وارد پوشهی سورس برنامه میشویم:
cd helloworld-1.0دستور زیر را اجرا میکنیم:(آدرس ایمیل خود را وارد کنید)
dh_make -e your@email.addressدستور بالا یک پوشه به نام debian در داخل پوشهی سورس برنامه میسازد.
وارد پوشه debian میشویم:
cd debianو دستور بعد را اجرا میکنیم:
rm *.ex *.EXفایلهای changelog'و 'copyright' و 'control را مطابق
لینک تغییر میدهیم.
فایلی به نام rules را در داخل پوشهی دبیان پیدا کرده و باز میکنیم و یکی از دو محتوای زیر را در آن ذخیره میکنیم:(تاکید میکنم یکی، نه هر دو)
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# This file is public domain software, originally written by Joey Hess.
#
# This version is for packages that are architecture dependent.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
build: build-stamp
build-stamp:
dh_testdir
# Add here commands to compile the package.
qmake-qt4 -config release
make
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
#$(MAKE) clean
#$(MAKE) distclean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/<packagename>
make INSTALL_ROOT=`pwd`/debian/package_name install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary installOR
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/qmake.mkنکته: برای استفاده از دومی که خیلی هم کم حجم و خوبه

باید با دستور زیر Common Debian Building System رو نصب کنید:
sudo aptitude install cdbsقسمت مشکل:(در صورت لزوم این مرحله را اجرا کنید. اول از این قسمت عبور کنید اگر فایل deb به درستی ساخته نشد، آنوقت به سراغ این قسمت بیایید.
ممکن است برنامهای که شما می خواهید نصب کنید، امکان make install نداشته باشد. برای این منظور خطوط زیر را به فایلی مشابه helloword.pro در پوشهی سورس برنامه اضافه کنید.(helloword اسم برنامهی مثال ما است. شما باید فایل با اسم برنامهی اصلی را جستجو کنید)
TARGET = <application>
target.path = /usr/bin
INSTALLS += targetتذکر: اگر هر کدام از خطوط بالا وجود داشت، آن را تکرار نکنید.
مثالی از محتوای فایل نهایی:
######################################################################
# Automatically generated by qmake (2.01a) Mon Jun 27 15:23:09 2011
######################################################################
QT += core gui phonon network xml
TARGET = al-anvar
TEMPLATE = app
CONFIG += qt \
release \
warn_off
#CONFIG += static
#DEFINES += STATIC
target.path = /usr/bin/
INSTALLS += target
HEADERS += anvar.h tools.h \
sqlite3.h \
database.h \
searchwindow.h \
dbsearch.h \
quranwidget.h \
setting.h \اگر برنامه، قسمتهای جداگانه ی دیگر هم داشت که میباید نصب شود، خطوط زیر را نیز مانند بالا به فایل اضافه کنید:(نقل قول از منبع اصلی)
optional: add supplementary files to the installation
data.path = /usr/share/<application>/data
data.files = data/*
INSTALLS += data
حال دیگر تنظیمات تمام شدهاست.
برای ساخت بستهی deb کافی است یکی از دستورات زیر را بر حسب داشتن یا نداشتن GPG اجرا میکنیم:
debuildاگر GPG ندارید:
debuild -uc -usدستور آخر در صورتیکه تنظیمات قسمت مشکل را انجام داده باشید، یک خطا خواهد داد که دستور رفع مشکل را نیز در خود دارد. کافی است تغییرات خود را با همان دستور commit کنید و دوباره دستور آخر را اجرا کنید.(برای تغییرات خود patch بسازید)
منبع :
https://wiki.ubuntu.com/PackagingGuide/QtApplicationروش سوم - استفاده از دستور pbuilderاین روش رو هنوز انجام ندادم.
این راهنما بهمرور با انواع دیگر برنامه کامل خواهد شد.
پ.ن: برای روش اول باید از بهنام گلستانی(BehnamGold) عزیز که کاربر قدیم این انجمن بوده و الان مدیر عزیز انجمن دبیانکاران هست تشکر کنم.
پ.ن: برای روش دوم باید از هدایت وطنخواه عزیز تشکر کنم که وقتی به مشکل خورده بودم، مشکلم رو حل کرد(هدایت یک فدورا کار است

)
هر دوی دوستان بالا خیلی خیلی بران عزیزن و بابت همهی چیزهایی که ازشون یاد گرفتم، ازشون ممنونم
یا علی