pyinstaller mahab.spec
sudo apt install ruby
gem install fpm --user-install
mkdir -p package/opt
mkdir -p package/usr/share/applications
mkdir -p package/usr/share/icons/hicolor/scalable/apps
cp -r dist/mahab package/opt/mahab
# add icons(16x16/22x22/24x24/32x32/36x36/42x42/48x48/64x64) to package/usr/share/icons/hicolor/
cp mahab.desktop package/usr/share/applications
find package/opt/mahab -type f -exec chmod 644 -- {} +
find package/opt/mahab -type d -exec chmod 755 -- {} +
find package/usr/share -type f -exec chmod 644 -- {} +
chmod +x package/opt/mahab/mahab
fpm -C package -s dir -t deb -n "mahab" -v 1.0.0 -p mahab-1.0.0.deb --license MIT --url "https://abramazani.github.io/mahab" --maintainer "Abolfazl Ramazani <abolfazlramazani86@gmail.com>" --description "Preventing the battery from getting too low or too high" --category Utility
بهجاش از وابستگی استفاده میشه و بخاطر همینه که حجم نرمافزار ها توی لینوکس کمه.میشه درباره وابستگی ها توضیح بدین؟
سادهاست، چطوری بگم، نرمافزار خودتون رو مثال میزنم. برای مثال نرمافزار شما به کتابخونههاینقلقولبهجاش از وابستگی استفاده میشه و بخاطر همینه که حجم نرمافزار ها توی لینوکس کمه.میشه درباره وابستگی ها توضیح بدین؟
سادهاست، چطوری بگم، نرمافزار خودتون رو مثال میزنم. برای مثال نرمافزار شما به کتابخونههایآها... خب فکر کنم با روشی که این مقاله گفته بود نمیشه همچین کاری کرد...tkinter, psutil, PILنیاز داره. خب شما میاید چیکار میکنید؟ همه کتابخونههارو داخل بسته deb قرار میدید؟ خیر. به بسته deb مشخص میکنید و میگید که نرمافزارم به کتابخونههایpython3-tk, python3-psutil, python3-pilنیاز داره برو نصبش کن. (بقیه رو نگفتم چون داخل مخازن نبودند) بعد هم مدیربسته میره وابستگیهای مدنظر رو نصب میکنه یا اگر از قبل در سیستم نصب شده بود اونارو دیگه دوباره نصب نمیکنه. علاوه بر این اگر نرمافزار دیگه ای به وابستگی های شما احتیاج داشتند (و بلعکس) هم دوباره نصب نمیشه و این میشه که حجم نرمافزار ها در مخازن گنو/لینوکس کم هست، و اگه دیدید حجم نرمافزار بزرگی مثل گیمپ چند مگابایت بیشتر نیست نباید تعجب کتید.
https://bmbgk.ir/?q=Packaging+for+debian:-k :-k خب اگه جواب رو توی گوگل پیدا می کردم وقت شما رو نمی گرفتم!
سلامبهتره این کار رو به روش استاندارد، یعنی با ساخت شاخهٔ Debian انجام بدی. برای مثال اینجا رو ببین:
قبل از هر چیز این تاپیک (https://forum.ubuntu-ir.org/index.php?topic=154589) رو ببینید
خب بالاخره بعد از چند ماه جستجو برای ساخت یک پکیج deb از فایل پایتون رسیدم به این مقاله (https://www.pythonguis.com/tutorials/packaging-pyqt5-applications-linux-pyinstaller/) که خیلی کمکم کرد...
…
نباید پایگاه داده رو در مسیر ریشه بذاری. دقیقاً کارش چیه اون پایگاه. شاید بهتر باشه بذاریش تو پروندههای پیکربندی کاربر.…
- برای اجرای نرم افزاز نیاز به سطح دسترسی root هست!
استفاده از قلمهای دیگه جز در مواردی که برنامه تمامصفحه اجرا میشه، مجاز نیست و برنامهها باید از قلم نشست استفاده کنن.…
- مشکل در لود فونت ها
باید براش یه entry point بسازی. برای مثال اینجا رو ببین:…
- اجرای برنامه توسط termianl
اصولیترین راه، فرستادن یه ITP به دبیان است:خب این مشکل نیست!
- اضافه کردن نرم افزار به مخازن اوبونتو
برای دانلود و نصب یک برنامه راحت ترین و امن ترین راه استفاده از مخازن هست!(حالا توزیعش فرقی نمی کنه)
من چطور میتونم نرم افزار خودم رو هم به یکی از این مخازن اضافه کنم؟
تازگی ها چیزی رو دیدم به نام ppa که یه مخزن به روز هست که برای هر آپدیت نرم افزار نیاز نیست صبر کنیم تا مخزن بیاد آپدیت بده! میتونیم به روز نرم افزار رو نصب کنم... چطور می تونم یک ppa برای نرم افزارم داشته باشم؟PPAها فقط برای اوبونتو کار میکنن. برای داشتنش باید یه پروژه توی https://launchpad.net بسازی.
نباید پایگاه داده رو در مسیر ریشه بذاری. دقیقاً کارش چیه اون پایگاه. شاید بهتر باشه بذاریش تو پروندههای پیکربندی کاربر.مثل هر دیتابیس دیگه ای دیتا ذخیره میکنه خب!! یه سری اطلاعات درباره کاربر و یه سری تنظیمات برای برنامه...
استفاده از قلمهای دیگه جز در مواردی که برنامه تمامصفحه اجرا میشه، مجاز نیست و برنامهها باید از قلم نشست استفاده کنن.منظورتون از تمام صفحه و فونت نشست چیه؟
مثل هر دیتابیس دیگه ای دیتا ذخیره میکنه خب!! یه سری اطلاعات درباره کاربر و یه سری تنظیمات برای برنامه...برای ذخیرهٔ دادهها بهتره از Gsettings استفاده کنی:
منظورتون از تمام صفحه و فونت نشست چیه؟تمامصفحه حالتیه که مثلاً بازیها توش اجرا میشن. توی حالت تمامصفحه دیگه به محیط میزکار دسترسی نداری.
آخه چرا نمیشه از فونت دلخواه استفاده کرد!گزینش قلم استفاده شده به عهدهٔ کاربره. ممکنه کاربری مشکل بینایی داشته باشه و نیاز باشه از قلمی خاص استفاده کنه.
فونت خود توزیع که توی حالت فارسی خیلی زشته...