باسلام
این دستور به خوبی اجرا می شود اما برخی هشدار ها نمایش داده می شود:
(dpkg-source: warning: extracting unsigned source package (mahab_1.0.0-1.dsc
dh_auto_configure: warning: Please use the third-party "pybuild" build system instead of python-distutils
dh_auto_configure: warning: This feature will be removed in compat 12.
dh_auto_test: warning: Please use the third-party "pybuild" build system instead of python-distutils
dh_auto_test: warning: This feature will be removed in compat 12.
برای اخطار اول، مشکل از این هست که dpkg-source سعی میکنه امضای اون بسته کد رو بررسی کنه ولی از اونجایی که امضا نداره، اخطار میده که این بسته امضا نداره. حواستون باشه این بسته کد هست، هنوز به بسته deb تبدیل نشده.
دوتا راه حل دارید، یا بسته کد (که احتمالا tar هست و با gzip یا xz فشرده شده) رو امضا کنید یا اینکه به dpkg-source بگید امضای اونها رو بررسی نکنه. به نظرم اولی زیاد مناسب نیست چون شما دارید برنامه رو هی توسعه میدید و اگه بخواهید هر دفعه اون رو امضا کنید، راحت نیست. معمولا وقتی امضا میشه که قراره یه نسخه برنامه منتشر بشه یا میخواهید اون کد رو به یکی دیگه بدید.
اگه میخواهید dpkg-source امضای اون رو بررسی نکنه، باید آپشن no-check-- رو بهش بدید. این دستور، خودکار توی مراحل ساخت بسته deb اجرا میشه. احتمالا باید بتونید از طریق فایلهای تنظیمات یا خط فرمان، کار کنید که این آپشن هم به دستور داده بشه.
در مورد بقیه اخطارها، مشخصه که چی گفته. گفته که به جای python-distutils، از pybuild برای ساخت بستههای deb استفاده کنید چون این ویژگی قراره توی compat نسخه 12، برداشته بشه. compat یه استاندارد برای ساخت بستههای deb هست.
فکر کنم stdeb از python-distutils استفاده میکنه، مطمئن نیستم. شاید توی نسخههای بعدی stdeb، از pybuild استفاده بشه.
این لینکها برای ساختن بسته deb به شما کمک میکنه.
https://wiki.debian.org/BuildingTutorialhttps://wiki.debian.org/HowToPackageForDebianhttps://wiki.debian.org/Packaginghttps://www.debian.org/intro/helpتوی صفحات بالا، لینکهایی به بقیه صفحات مرتبط وجود داره. بهتره اونها رو هم ببینید. بسته packaging-tutorial شامل یه آموزش کوچک به چندین زبان توی قالبهای pdf و متن معمولی برای ساخت بستههای deb هست. (متاسفانه فارسی نداره) فکر کنم آموزش اون، توی ویکی دبیان هم گفته شده.
به هر حال فایل deb در پوشه deb_dist ساخته می شود.من تلاش می کنم با این دستور آن را نصب کنم:
sudo dpkg -i python3-projectname1.0.0_all.deb
اما به این ارور بر میخورم:
python3-mahab_1.0.0-1_all.deb
Selecting previously unselected package python3-mahab.
(Reading database ... 203695 files and directories currently installed.)
Preparing to unpack .../python3-mahab_1.0.0-1_all.deb ...
Unpacking python3-mahab (1.0.0-1) ...
dpkg: dependency problems prevent configuration of python3-mahab:
python3-mahab depends on python3-psutil; however:
Package python3-psutil is not installed.
python3-mahab depends on python3-pyglet; however:
Package python3-pyglet is not installed.
python3-mahab depends on python3-six (= 1.16.0); however:
Version of python3-six on system is 1.14.0-2.
dpkg: error processing package python3-mahab (--install):
dependency problems - leaving unconfigured
Processing triggers for bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu2) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Errors were encountered while processing:
python3-mahab
بهتره این بستهها رو توی محیط chroot یا توی یه کانتینر مثل داکر یا ماشینمجازی نصب کنید تا سیستم اصلی شما خراب نشه.
خطا مربوط به این هست که وابستگیهای بسته شما نصب نشده. dpkg از مخازن استفاده نمیکنه و نمیتونه وابستگیهایی که توی سیستم وجود ندارند رو از مخازن نصب کنه. از apt استفاده کنید. این شکلی:
sudo apt install /path/to/python3-mahab_1.0.0-1_all.deb
برای نصب برنامهها، تا جایی که میتونید، مستقیم از dpkg استفاده نکنید.
ولی الان بسته بالایی نصب شده اما وابستگیهای اون نصب نشده، به خاطر همین فکر کنم دستور بالایی کار نکنه. به جاش رو امتحان کنید.
sudo apt install -f