اذهب إلى المحتوى

يعتقد البعض أن تثبيت التطبيقات البرمجية في لينكس عملية صعبة لا يفهمها سوى المطورون، هذا الاعتقاد خاطئ وسنوضح في هذا المقال جميع التفاصيل اللازم معرفتها لمساعدة مستخدمي لينكس في الحصول على برامج جيدة لحواسيبهم.

تتعدد المصادر التي يمكن من خلالها الحصول على التطبيقات حتى يكاد يكون من المستحيل إحصاء عددها وذلك بسبب تنوع طرق توزيع التطبيقات التي تستخدمها فِرق التطوير، من أبرز هذه الطرق هي المستودعات.

المستودعات

المستودع repository هو خادم عام يستضيف حزم برامج قابلة للتثبيت، وقد استخدم لينكس المستودعات لتوزيع البرمجيات لمدة تزيد عن عقد من الزمن وما تزال تعد المستودعات الطريقة الأساسية لتثبيت التطبيقات على نظام لينكس لذا فإن المستودعات خيار البحث الأول عن أي تطبيق مطلوب.

توفر كل توزيعة لينكس أمرًا برمجيًا لعملية التثبيت وغالبًا ما يُزوّد هذا الأمر بواجهة رسومية، إذ يجلب الأمر البرنامج من الخادم ويثبته على حاسوب المستخدم، ويُعد هذا المفهوم بسيطًا لدرجة أنه يُعدّ نموذجًا معياريًا لجميع أنظمة التشغيل الرئيسية الخاصة بالهواتف المحمولة، وأصبح أيضًا النموذج المُستخدم من قبل متاجر التطبيقات الخاصة بأنظمة تشغيل أجهزة الحاسوب الرئيسية غير مفتوحة المصدر.

تنزيل برامج من المستودع.PNG

يُثبّت تطبيق إنكسكيب inkscape من المستودع الموجود فيه باستخدام الأمر التالي:

$ sudo dnf install inkscape

الأمر الموجود في السطر السابق هو dnf لأن التوزيعة المستخدمة هي فيدورا Fedora ويتغير هذا الأمر من توزيعة لأخرى، إذ تستخدم توزيعة OpenSUSE الأمر zypper، وتستخدم كل من ديبيان Debian وأوبنتو Ubuntu الأمر apt، وتستخدم توزيعة Slackware الأمر sbopkg، وتستخدم توزيعة FreeBSD الأمر pkg_add، أما بالنسبة لتوزيعة OpenIndiana القائمة على Illumos فتستخدم الأمر pkg.

لفهم الآلية بشكل أعمق، تتضمن العملية السابقة البحث عن الاسم الصحيح لما هو مطلوب تثبيته فقد يكون الاسم المعروف لبرنامج ما ليس الاسم الرسمي له أو قد لا يتفرد بهذا الاسم أي يشترك به مع تطبيق آخر، لذا يمكن في البداية البحث عنه كما في المثال التالي:

$ sudo dnf search pyqt
PyQt.x86_64 : Python bindings for Qt3
PyQt4.x86_64 : Python bindings for Qt4
python-qt5.x86_64 : PyQt5 is Python bindings for Qt5

فعند البحث عن المجموعة pyqt تبين وجود ثلاثة خيارات، يجب عندها تحديد اسم الحزمة المراد تثبيتها ثم استخدام أمر التثبيت dnf install لإجراء التنزيل الفعلي والتثبيت التلقائي بالشكل التالي:

$ sudo dnf install python-qt5

يمكن الحصول على تفاصيل حول تثبيت تطبيق ما من مستودع البرامج من خلال مراجعة توثيق التوزيعة المستخدمة، ولتسهيل عملية التنزيل يمكن الاعتماد على الواجهة الرسومية بدلًا من كتابة الأوامر البرمجية وفي هذه الحالة وبطريقة مشابهة لأمر التثبيت، يختلف اسم المثبت الرسومي باختلاف التوزيعة المستخدمة كما يمكن التبديل إلى مثبت آخر إذا كان لا يناسب المستخدم.

تتميز هذه الطريقة بالاستخدام السلس والسهل إذ نكتب ببساطة اسم التطبيق المطلوب في حقل البحث ثم نبحث عنه ونثبته، وتوضح الصورة التالية عملية البحث عن نفس المجموعة pyqt المستخدمة في المثال السابق:

البحث باستخدام الواجهات الرسومية.PNG

نلاحظ وجود عدة نتائج لعملية البحث وما يهمنا فقط هو التطبيق ذي الصلة بالبرنامج أو الحزمة التي بحثنا عنها، ونستطيع معرفة هذا التطبيق عادةً عن طريق وسوم يمكن العثور عليها في المشغل أو القائمة.

مستودعات إضافية

تمتلك كل توزيعة لينكس غالبًا بالإضافة إلى المستودع المعياري مستودعات إضافية عامة، فمثلًا يخدم مستودع EPEL كل من مشروع Red Hat وCentOS، بينما يخدم مستودع RPMFusion توزيعة فيدورا، ويمتلك أوبنتو عدة مستودعات بالإضافة إلى شبكة أرشيف الحزم الشخصية Personal Package Archive network والتي يرمز لها اختصارًا PPA، ويوفر مدير الحزم Packman برامج إضافية لتوزيعة OpenSUSE، ويوفر SlackBuilds.org سكربت لمستودعات توزيعة Slackware بهدف تخديم مستخدمي مجتمع هذه التوزيعة.

مستودع RPMFusion الإضافي لتوزيعة فيدورا.PNG

يبحث لينكس افتراضيًا في مستودعاته الرسمية فقط لتثبيت تطبيق ما، أما المستودعات الإضافية تُضاف يدويًا وتسهّل الوصول إلى مجموعة من البرامج، تتم عملية الإضافة بسهولة وبطريقة مشابهة لتثبيت حزمة برامج وذلك بالاستعانة بمدير ضبط الحزم ليضيف بيانات المستودع إلى ملف الضبط، أو يمكن تثبيت المستودع عبر سطر الأوامر، انظر الأمر التالي مثلًا (يختلف باختلاف التوزيعة):

$ sudo dnf config-manager --add-repo=http://example.com/pub/centos/7

عندما تُثبَّت برامج معينة مثل تطبيق المحادثة بالفيديو GNU Ring، ومتصفح الويب Vivaldi، ومتصفح غوغل كروم Google Chrome، والعديد من البرامج الأخرى فإن ما يتم تثبيته في الواقع هو الوصول إلى مستودعاتهم الخاصة، والتي يتم من خلالها تثبيت أحدث إصدار من التطبيق المطلوب على حاسوب المستخدم.

تثبيت التطبيقات من خارج المستودعات

شاع استخدام المستودع لعدة أسباب، فهو يوفر رابطًا بين المستخدم (أنت) والمطور، ويسهل عمل المستخدم خاصةً بما يتعلق بالتحديثات المهمة والجديدة على النظام، إذ يمكن أن تتم من خلال مستودع واحد، وعلى الرغم من هذه المزايا يمكن توفير الحزم دون أن تكون تابعة لمستودع وتأتي الحزم في عدة نماذج.

حزم لينكس

يقوم المطور أحيانًا بتوزيع البرامج بصيغ حزم لينكس الشائعة مثل RPM أو DEB، أو الصيغ الأحدث مثل FlatPak أو Snap، ولا تسمح هذه الصيغ للمستخدم بالوصول إلى المستودع وإنما يحصل على الحزمة فقط، ولا تحتاج إلى عملية تثبيت معقدة بل تتم بآلية مشابهة لتثبيتها من أحد المستودعات، ويمكن الاستعانة بمُثبِّت مزود بواجهة رسومية ليوجّه المستخدم خلال عملية التثبيت، وذلك عن طريق النقر على الحزمة نقرًا مزدوجًا بعد تنزيلها، ويمكن بدلًا من ذلك العودة إلى الطريقة التقليدية والتثبيت من خلال سطر الأوامر كما يلي:

$ sudo dnf install ~/Downloads/lwks-14.0.0-amd64.rpm

يُثبّت ملف الحزمة المعزول محليًّا مما يعني أن برنامج إدارة الحزم لا يحتاج إلى تنزيله لتثبيته ويعالج معظم مديري الحزم هذا الأمر بشفافية، فمثلًا يوفر محرر الفيديو Lightworks ملفًا ذو امتداد deb. لمستخدمي APT وملف ذو امتداد rpm. لمستخدمي RPM وعندما يريد المستخدم التحديث عليه العودة إلى موقع الويب وتنزيل أحدث ملف مناسب وإعادة تثبيته يدويًا.

اقتباس

قد تحتاج بعض التطبيقات اتخاذ خطوات إضافية لتشغيلها، يتم الاطلاع على هذه التفاصيل عن طريق قراءة التوثيق الخاص بالتطبيق الذي يتم تثبيته.

التثبيت بواسطة سكربت شامل

يصدر المطور الحزم بإحدى النماذج العامة وتشمل الإمتدادات الشائعة run. و sh. ويقدم المطور وسائل تُساعد المستخدم على إتمام عملية التثبيت، وتتنوع أدوات التثبيت إذ يكون بعضها أدوات رسومية بينما يعمل البعض الآخر في سطر الأوامر ويمكن البدء بعملية التثبيت مباشرةً من سطر الأوامر كما يلي:

$ sh ./game/gog_warsow_x.y.z.sh

ويتوفر خيار آخر وهو البدء بعملية التثبيت من سطح المكتب مباشرةً وذلك وفق عمليات بسيطة وهي: النقر بزر الفأرة الأيمن على أيقونته والتوجه إلى خصائص ثم تفعيل خاصية قابلية التنفيذ Is executable، وتوضحها الصورة التالية:

تشغيل المثبت على سطح المكتب.PNG

يلي ذلك خطوة بسيطة وهي النقر نقرًا مزدوجًا فوق الأيقونة لبدء التثبيت، وبالنسبة لبقية المراحل فهي بسيطة وتتطلب فقط اتباع التعليمات التي تظهر على الشاشة.

بدء التثبيت.PNG

تستخدم هذه الطريقة في تثبيت مشغل بطاقة الرسوميات نفيديا NVIDIA وحزم FX المرئية مثل Nuke وMari من شركة Foundry، بالإضافة إلى العديد من الألعاب من منصة GOG الخالية من الحقوق الرقمية.

التطبيقات المحمولة بصيغة AppImage

تعد صيغة AppImage جديدة نسبيًا في لينكس، على الرغم من أن مفهومها يعتمد على كل من NeXT و Rox وفكرته بسيطة، إذ يوضع كل ما هو مطلوب لتشغيل التطبيق في مجلد واحد ثم يتم التعامل مع هذا المجلد على أنه تطبيق ثم تشغيله ببساطة عن طريق النقر نقرًا مزدوجًا على الأيقونة الخاصة به فيبدأ التشغيل ولا يتم تثبيت التطبيق بالمعنى التقليدي بل إنه يعمل من أي مكان موجود فيه على محرك الأقراص الثابتة.

على الرغم من قدرته على العمل كتطبيق قائم بذاته، يقترح نموذج AppImage عادةً تنفيذ بعض الإجراءات البسيطة مثل إضافة أيقونة واسم التطبيق لقائمة التطبيقات المثبتة على الحاسوب، ويظهر الاقتراح كما هو موضح في الصورة التالية:

تكامل نظام AppImage.PNG

عند قبول الاقتراح سيثبت ملف ضبط صغير الحجم محلي بامتداد desktop. في المجلد الرئيسي الخاص بسطح المكتب وتستخدمه قائمة التطبيقات ونظام mimetype لسطح مكتب لينكس، يكون التثبيت وهمي وليس فعليًا ولكن يحصل المستخدم على جميع مزايا التثبيت الفعلي والتشغيل المحلي لتطبيق ما باعتباره تطبيق محمول.

مجلد التطبيق

يجمع المطور أحيانًا تطبيقًا ما وينشر النتيجة كتنزيل فقط بدون سكربت خاص بالتثبيت أو حزم، وهذا ما يتطلب من المستخدم تنزيل ملف مضغوط TAR مثلًا واستخراج محتواه ثم النقر نقرًا مزدوجًا فوق الملف القابل للتشغيل، ويكون الملف المطلوب عادةً هو الملف الذي يحمل اسم البرنامج الذي تم تنزيله.

twine.PNG

تأتي التنزيلات غالبًا في مجلدات بأسماء ذات رقم إصدار، مثل twine_2.13 أو pcgen-v6.07.04 ، نظرًا لوجود احتمال كبير لتحديث التطبيق في وقت ما، فمن الجيد إما إزالة رقم الإصدار أو إنشاء وصلة رمزية symlink للمجلد، يمكن بهذه الطريقة أن يظل المشغل الذي تم إنشاؤه للتطبيق كما هو على الرغم من تحديث التطبيق نفسه.

يمكن في هذا النمط ترك المجلد حيث تم تنزيله وتشغيله يدويًا عند الحاجة، أو إجراء تثبيت سريع ومُعَدَّل والذي يتضمن خطوتين بسيطتين:

  1. حفظ المجلد في موقع معياري ثم تشغيله يدويًا عند الحاجة.
  2. حفظ المجلد في موقع معياري وإنشاء ملف بامتداد desktop. لدمجه في النظام.

يتغير مكان تخزين التطبيق حسب حالات الاستخدام، فعند استخدام التطبيقات شخصيًا يُحفظ مجلد bin وهو اختصار لثنائي binary في المجلد الرئيسي كموقع تخزين لأي تطبيق أو سكربت مثبت محليًا، أما عند وجود مستخدمين آخرين على النظام ويحتاجون الوصول إلى هذه التطبيقات، فمن المعتاد وضع التطبيق في مجلد opt/.

لإنشاء ملف مشغل بامتداد desktop. يجب فتح محرر نصوص وإنشاء ملف يسمى twine.desktop ، يتم تحديد مواصفات إدخال ملف desktop. مثل تسمية الملف والتنسيق الأساسي له وأنواع القيم الممكنة بواسطة FreeDesktop.org، وللتوضيح فيما يلي مشغل بسيط لبيئة تطوير متكاملة IDE تسمى Twine لتطوير لعبة، تم تثبيته في المجلد opt/ على مستوى النظام:

[Desktop Entry]
Encoding=UTF-8
Name=Twine
GenericName=Twine
Comment=Twine
Exec=/opt/twine/Twine
Icon=/usr/share/icons/oxygen/64x64/categories/applications-games.png
Terminal=false
Type=Application
Categories=Development;IDE;

يجب أن يحتوي السطر Exec على أمر فعال لبدء التطبيق، يكون عادةً هذا المسار الكامل إلى ما تم تنزيله ولكن يكون الأمر أكثر تعقيدًا في بعض الحالات فمثلًا قد يلزم تشغيل تطبيق جافا كوسيط لجافا نفسها:

Exec=java -jar /path/to/foo.jar

يتضمن المشروع أحيانًا سكربت مُغلِّف يمكن تشغيله بدلًا من البحث عن الأمر الصحيح:

Exec=/opt/foo/foo-launcher.sh

لا توجد أيقونة مرفقة مع التنزيل في مثال Twine لذا فإن ملف desktop. الخاص بالمثال يعين أيقونة ألعاب عامة يتم إرفاقها مع بيئة سطح المكتب KDE، وهو ما يعتبر حلًا بديلًا ولكن يمكن للمستخدم إنشاء أيقونة خاصة به أو البحث على الإنترنت عن أيقونة مناسبة، المهم أن يكون السطر البرمجي الخاص بالأيقونة والذي يكون باسم Icon يشير إلى ملف PNG أو SVG لتُضبط هذه الصورة كأيقونة للتطبيق. كما يحدد السكربت فئة التطبيق ضمن فئة التطوير Development بشكل أساسي لذلك يظهر Twine ضمن فئة التطوير في KDE و GNOME ومعظم قوائم التطبيقات الأخرى.

لكي يظهر هذا المثال في قائمة التطبيقات يجب وضع ملف twine.desktop في أحد المكانين التاليين:

  • ضمن local/share/applications./~ لتخزين التطبيق في المجلد الرئيسي.
  • ضمن usr/share/applications/ لتخزين التطبيق في مجلد opt/ أو أي موقع آخر على مستوى النظام ويُراد إظهاره في جميع قوائم التطبيقات الخاصة بالمستخدم.

وبهذا يتم تثبيت التطبيق كما يجب أن يكون كما أنه متكامل مع بقية النظام.

البناء من المصدر

تعد الشيفرة المصدرية صيغة تثبيت شاملة فعلية، ويُعدّ بناء تطبيق من شيفرة مصدرية طريقة رائعة لمعرفة كيف تُنظّم التطبيقات وكيف تتفاعل مع النظام وكيف يمكن تخصيصها حسب رغبة المستخدم، ولذلك فهي ليست عملية سهلة وتتطلب بيئة بناء وتثبيت مكتبات الاعتماديات وملفات الترويسات وبعض عمليات تنقيح الأخطاء.

خاتمة

يمكن في النهاية شرح عملية التثبيت باختصار أنه مجرد نسخ الملفات من مكان ما إلى الأماكن المناسبة على نظام المستخدم، ومن المهم التأكد من بساطة وأمان المُثبِّت، فمثلًا عند مصادفة مُثبِّت يحاول تثبيت برامج إضافية دون موافقة أو يطلب الموافقة ولكن بأسلوب مضلل أو يُجري عمليات فحص على النظام دون سبب واضح، يجب التراجع وعدم مواصلة عملية التثبيت عند مواجهة أي حالة منها لضمان الحصول على تثبيت آمن.

ترجمة -وبتصرف- للمقال How to install software applications on Linux لصاحبه Seth Kenlon.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...