سكربت بايثون لتثبيت البرامج قابل للتوسع

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته




سكربت بايثون لتثبيت البرامج قابل للتوسع .


قمت بعمل سكربت بسيط لتثبيت البرامج قابل للتوسع من خلال إضافات نقوم بعملها نحن ,لكم حرية إستخدام السكربت والتعديل عليه والبناء عليه لمن أراد .

السكربت يعمل من سطر الأوامر وعمله بسيط جدا تنفيذ أمر أو أكثر على حسب ما نضعه نحن .




ساضع الصور وتحت كل صورة شرح.


 عند تشغيل السكربت سيقرأ الإضافات Plugins وعلى ضوئها يعرض شيء كالذي في الصورة في الأعلى نلاحظ اني إخترت رقم إثنين لتثبيت firefox المثيت أصلا نلاحظ كلمة Installed .

ملاحظة يمكننا الخروج من البرنامج من خلال الضغط على حرف q وممكن إعادة قراءة كل الإضافات من خلال الضغط على حرف r .



 لأن firefox مثبت أصلا Installed لم يقوم السكربت  بشيء فقط عرض جملة nothing to do .





 الإن إخترت تثبيت google chrome وتم التثبيت بنجاح بطبيعة الحال السكربت يستخدم مدير الحزم مثلا أنا أعمل من فيدورا لهذا أستخدم مدير الحزم dnf على العموم ستتوضح اﻷمور في الصور في الأسفل .




 اﻷن هذا شكل الإضافة الخاصة بتثبيت chromium نلاحظ أن كل الإضافات توضع في مجلد Plugins إلى جانب السكربت ونلاحظ أن السكربت سيتعرف فقط على كل ملف ينتهي بالاحقة arfedora. وتكتب الإضافة بهذه الصيغة وهي عبارة عن ملف  yaml داخله بيانات.

1-إسم البرنامج .

2-الجملة التي ستظهر مثلا Install Firefox نضع ما يناسبنا .

3-قائمة من الأوامر التي ستنفذ بالترتيب وهنا وضعت أمر واحد وهو dnf install chromium .

4-مسار ملف أو أكثر نضعه داخل القائمة ويتم التأكد من هذه الملفات إن كانت كلها موجودة سيكون البرنامج Installed اي مثبت مسبقا غير ذلك لن يكون مثبت وهنا معنا الأن وضعت مسار ملف واحد .
 
5-المعمارية المطلوبة يمكن أن نضع 64bit أو 32bit او all أي الإثنين ,وهنا إذا كان مثلا الجهاز الذي نعمل منه  64bit ووضعنا 32bit لن تظهر هذه الإضافة بين خيارات التثبيت والعكس الصحيح اما إذا وضعنا  all ستظهر على اي حال .

6-صلاحيات المستخدم الذي شغل السكربت وهنا ممكن أن نضع root او user او all اي الإثنين ,وهنا لنفترض وضعنا root ولم نشغل السكربت من خلال مستخدم root او من خلال صلاحياته مثلا من خلال إستخدام sudo لن تظهر هذه الإضافة بين خيارات التثبيت والعكس صحيح وإذا وضعنا all ستظهر على اي حال .

7-إسم التوزيعة أو أكثر داخل قائمة ,إسم التوزيعة  الذي يظهر في ملف etc/os-release/ امام =ID وممكن أن نضع all مثلا لنفترض وضعنا fedora هنا لن تظهر الإضافة إلا إذا كنا نعمل من خلال fedora وإذا وضعنا all ستظهر على أي حال ملاحظة ممكن داخل القائمة وضع أكثر من إسم توزيعة.





 صورة أخرى من إضافة تثبيت firefox .


صورة من إضافة تثبيت google chrome نلاحظ هناك امرين داخل قائمة الأومر التي ستنفذ أمر إضافة المستودع وهو امر طويل قليلا والأمر الثاني أمر التثبيت .



أخر ملاحظة السكربت يحتاج حزمة PyYAML أظن هي متوفرة في كل التوزيعات يكفي البحث عنها و تثبيتها من مدير الحزم أظن في فيدورا إسمها python3-PyYAML وفي solus إسمها pyyaml .

لتنزيل السكربت ممكن أن نقوم بتنزيله كملف مضغوط من خلال موقع  github وممكن عمل clone لمستودعه.


cd &&git clone https://github.com/yucefsourani/arfedora-tweak

cd ~/arfedora-tweak

sudo ./arfedora-tweak.py

./arfedora-tweak.py


أي مشكلة تواجهكم أرجو إخبار وممكن إخباري على مستودع github في Issues .






تغيرات قمت بها :


1-قمت بإضافة سكربت أخر إلى جانب السكربت القديم إسمه arfedora-tweak-gui.py عمل السكربت تشغيل البرنامج بواجهة رسومية من خلال python ومكتبة gtk3 .

2-إستبدلت إسم الإضافات بدل أن تنتهي بالاحقة  arfedora أصبحت تنتهي ب Plugins ملاحظة Plugins و ليس plugins وداخل الإضاقات أيضا إستبدلت كلمة arfedora ب plugins بأحرف صغيرة .

 3-إلى جانب 32bit و 64bit وضعت أبضا 32bitonly وهي تجبر الإضافة تظهر لأنظمة 32bit فقط أما 32bit ستظهر على أي حال لأن ممكن تثبيت برامج 32bit على 64bit لاكن لمن أراد حصر الامر في أنظمة 32bit يضع 32bitonly في الإضافة .











كما ذكرت لكم حرية التعديل على البرنامج وقمت بتسهيل الأمر لتغير إسم البرنامج والمعلومات المذكورة في about نفتح ملف arfedora-tweak-gui.py ونعدل هذه الأشياء بالمناسبة يمكنكم أبضا تغير إسم الملف نفسه .

1-إسم البرنامج .

2-مسار ملفات الترجمة لمن أراد أن يعمله برنامج متعدد اللغات ملاحظة مجلد local سيكون إلى جانب البرنامج وإستبدلو program_name بإسم البرنامج الذي إخترتوه على العموم ضعو المسار المناسب لكم و هذا الشيء يحتاج بعض التفصيل تابعو هذا الموضوع سبق وكتبت عن الأمر .

3-رقم إصدار البرنامج .

4-إستبدلو إسمي والسنة على حسب ما تريدونه.

5-تعليق بسيط عن عمل البرنامج .

6-أيضا إستبدلو إسمي وبريدي.


7-أسماء من ترجم البرنامج لاحظو السطر الذي يليه كيف ممكن وضع الأسماء .

8-أي موقع تريدونه خاص بكم .

9-مسار صورة أيقونة البرنامج وإسمها أنا ةضعتها بشكل إفتراضي بمجلد icon إلى جانب البرنامج غيرو الصورة لصورة خاصة بكم وإختارو أي مسار وإسم صورة يناسبكم .

10-البرنامج الذي يطلب كلمة المرور بشكل رسومي في فيدورا إسمه pkexec أظنه موجود في كل التوزيعات إذا لم يكن موجود نضع البديل صورة في الأسفل توضح .


11-عرض نافذة البرنامج .

12-إرتفاع نافذة البرنامج .

 


فيديو :


 

شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (4) أشياء تفعلها (5) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (14) برامج (47) برامج إسلامية (2) برنامج (18) برودباند (1) بعد (4) بعد التثبيت (5) بلوتوث (1) بناء (1) بيئة عمل (1) تثبيت (25) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (4) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) ريدهات (2) سكربت (2) شرح (10) صورة متحركة (1) فايرفوكس (1) فصل (1) فلاشة (3) فيدورا (26) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (3) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) وايرلس (1) وهمي (2) ويندوز (2) active (2) add (1) after (4) alias (1) andoid studio (1) android (1) android studio (1) Apache (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bluetooth (1) book (2) books (2) bootloader fix (1) broadband (1) broadcom (1) broadwayd (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (1) chsh (1) cisco (1) clion (1) clone (1) code.org (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) curlew (1) custom (2) dbus (1) dconf (1) dd (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) disks (1) dnf (12) do (4) docker (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (8) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) enable (2) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (38) fedora 25 alpha (1) fedora cloude (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) firefox (2) fix (8) flash mem (1) flash memory (2) flashplayer (1) flatpak (2) fpaste (1) free (1) freebsd (1) function (1) game (3) games (1) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (9) gnome disk (1) gnome shell (12) gnome terminal (1) gnome-disks (1) gnu (1) goldendict (1) google web designer (1) gradio (1) group (1) grub (5) grub2 (1) gtk (3) gtk+ (1) hack (2) hash (3) hdmi (3) hibernate (1) home (2) hosspot (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (28) installf (9) installing (4) intellij idea (1) iso (1) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kernel (1) kernel parameters (1) key (1) kickstarts (2) korora (1) krita (1) kvm (1) kvm switches (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) life is trange (1) linux (7) lv (1) lvm (2) mac (4) macros (1) mageia (1) MariaDB and PHP Lamp Server (1) mate terminal (1) mbr (1) md5sum (1) mirro (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (7) objdesktop (1) ojuba (2) oop (1) opensuse (1) opera (1) optirun (2) oracle (1) os.path (1) package (1) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) phpstorm (1) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) primary display (1) primus (1) primusrun (1) programs (3) put (1) pv (1) pycharm (2) pygobject (1) pygtk (1) python (31) qdbus (1) qemu (2) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (2) remix (1) remix os (1) repo (4) repofrompath (1) resize2fs (1) rhel (1) rpm (6) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) script (2) seconday display (1) self (1) send (1) settings (1) sha1256sym (1) share desktop (1) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) soundcloud (1) source code (1) spec (2) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) su (1) sudo (2) sudoers (1) swap (2) switch (1) Switchable Graphics (1) synergy (1) teamviewer (1) terminal (2) theme (4) things (4) to (5) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) vg (1) vgaوتبديل (1) vi (1) vim (1) vino (1) virtual (1) virtual box (1) virtualbox (2) vmware (3) vnc server (1) vokoscreen (1) webstorm (1) wifi (1) windows (3) windows-1256 (1) X Error: BadAccess (1) X Error: BadDrawable (1) yum (2) zeal (1) zealdocs (1)