سلام
قبل از هر چیز
این تاپیک رو ببینید
خب بالاخره بعد از چند ماه جستجو برای ساخت یک پکیج deb از فایل پایتون رسیدم به
این مقاله که خیلی کمکم کرد...
خب فایل deb رو با استفاده از کامند های زیر(برای اطلاعات بیشتر به لینک بالا مراجعه نمایید) ساختم و
اینم نتیجه!
اینم سورس و فایل های استفاده شده برای ساخت deb(به دلایلی نتونستم اینجا پیوست کنم)
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
اما مشکلاتی که دارم:
- برای اجرای نرم افزاز نیاز به سطح دسترسی root هست!
خب اولین و مهم ترین مشکل من همینه!(مشکلی که در ساخت فایل exe اش هم همین مشکل رو داشتم) دیتابیس این نرم افزار sqlite3 هست و فایل دیتابیس میره و در پوشه Completed ذخیره میشه!
وقتی هم که برنامه install میشه فایل های پروژه میره توی پوشه opt که ویرایش فایل ها در این پوشه فقط با سطح دسترسی root امکان پذیره...
سوالی که دارم اینه آیا نیازه حتما به نرم افزار برای ویرایش data ها سطح دسترسی root داده بشه؟اگه بله خب چطور باید اینکار رو بکنم که به طور پیش فرض نرم افزار با سطح دسترسی ادمین اجرا بشه؟
یا اینکه میشه به یه فایل یا پوشه خاص این اجازه رو داد که کاربر عادی هم بتونه اونها رو ویرایش کنه؟
خب وقتی اومدم و نرم افزار رو با سطح دسترسی root اجرا کردم مشکلی که وجود داشت لود نشدن فونت ها بود!
من برای لود کردن فونت ها از pyglet استفاده می کنم و در حالت عادی هم مشکلی در استفاده از فونت ها نیست... اما وقتی فایل deb رو نصب می کنم و برنامه رو اجرا می کنم(با دسترسی root) اصلا فونت ها لود نمی شن و از فونت پیش فرض اوبونتو استفاده میشه!
- اجرای برنامه توسط termianl
خب در حالت عادی هر برنامه ای که نصب میشه وقتی در terminal اسم نرم افزار رو میزنی برنامه اجرا میشه...
اما وقتی من اسم نرم افزار(mahab) رو در terminal وارد می کنم با
mahab: command not found مواجه میشم!!
آیا برای اینکه این اتفاق بیوفته باید کار خاصی انجام داد؟
- اضافه کردن نرم افزار به مخازن اوبونتو
خب این مشکل نیست!
برای دانلود و نصب یک برنامه راحت ترین و امن ترین راه استفاده از مخازن هست!(حالا توزیعش فرقی نمی کنه)
من چطور میتونم نرم افزار خودم رو هم به یکی از این مخازن اضافه کنم؟
تازگی ها چیزی رو دیدم به نام ppa که یه مخزن به روز هست که برای هر آپدیت نرم افزار نیاز نیست صبر کنیم تا مخزن بیاد آپدیت بده! میتونیم به روز نرم افزار رو نصب کنم... چطور می تونم یک ppa برای نرم افزارم داشته باشم؟
اگر مایل به مشارکت در این پروژه هستین به
این لینک سر بزنید!!
باتشکر...