بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
تثبيت البرامج بنظام جنو لينكس:
هناك أكثر من طريقة لتثبيت البرامج في نظام جنو لينكس .
- التثبيت من المستودعات الرسمية.
- التثبيت من المستودعات الغير رسمية.
- التثبيت كحزمة مثلا حزمة rpm كما قلنا هي شيء كملفات exe في ويندوز.
- التثبيت من المصدر قد يكون برنامج مبرمج بلغة c او c++ مثلا لكن لم تتم ترجمته ليعمل مباشرتا نحتاج أن نقوم بتجميعة الذي تعامل مع برمجة c c++ يفهم ماذا أعني وإذا لم تعرف أخي القارء ساشرح بتفصيل أكثر في الموضوع القادم عن هذه الأمور.
- تحميل برنامج محمول لا يحتاج تثبيت بمعنى التثبيت فقط نقل الملفات إلى اماكنها الصحيحة أو إبقائه في مجلد وكلما أردنا تشغيل البرنامج نذهب إلى هذا المجلد ونشغله وقد يكون برنامج مبرمج بجافا مثلا وهنا سنحتاج تثبيت جافا أو بايثون.... أو c c++ لكن تمت ترجمته إلى ملف binary وهو جاهز ليعمل.
- تحميل برنامج محمول أيضا لكن يوجد معه سكربت لنقل الملفات إلى اماكنها الصحيحة سأشرح لاحقا عن الموضوع مبدئيا هذا كل شيء.
شرح أكثر تفصيل عن التثبيت نقطة نقطة :
- التثبيت من المستودعات الرسمية .
في فيدورا ستجدون عناوبن هذه المستودعات في مجلد بهذا المسار etc/yum.repos.d/ داخل هذا المجلد ستجد ملفات نصية عادية يمكن قرائتها داخل هذه الملفات يوجد مثلا رابط المستودع وحالته هل هو مفعل أو تم تعطيله حيث يمكن التحكم بالمستودعات يدويا او من مدير الحزم كما سأشرح لاحقا في دروس أخرى وهناك بعض التفاصيل اﻷخرى التي ليس وقتها الأن .
الأن سأشرح أمر مهم في جنو لينكس كما قلت سابقا أن نظام جنو لينكس يمكن تشبيهه بلعبة ال lego حيث يمكن تركيبه من قطع متفرقة البرنامج في جنو لينكس كذالك مثال انا أبرمج برنامج لنسخ الأقراص وقام أحد قبلي ببرمجة برنامج يعمل على التحويل بين صيغ ملفات الصوت أو الفيديو البرنامج سيكون قطع مثلا سكربت ليحول بين mp3 إلى waveو.... وسكربت واجهة البرنامج الرسومية وهكذا ...انا في برنامج نسخ الأقراص قد احتاج سكربت ليقوم بالتحويل بين الصيغ وهو ما يعرف في برامج نسخ الأقراص make audio cd عندها بدل أن أكتب هذا السكربت من الصفر أستخدم سكربت برنامج التحويل بين الصيغ الذي تمت برمجته قبلي وهذا أمر ممكن لأن الرخصة تسمح بذالك وهذا الامر سيأدي إلى صغر حجم البرامج نسبيا على حسب يعني إذا كنت مسبقا ثبتت برنامج التحويل بين الصيغ ثم أتيت لأثبت برنامج نسخ الأقراص مثلا سيكون حجم التنزيل 2mb أما إذا لم يكن برنامج التحويل بين الصيغ موجود مسبقا سيكون حجم التحميل أكبر مثلا 3mb والعكس صحيح وهذا ما يسمى بالإعتماديات أي أن هذا البرنامج يعتمد على أقسام من برامج أخرى او يعتمد على برنامج أو سكربت أخر كليا .
الأن كيف نعرف أن هذا البرنامج يحتاج إعتماديات أخرى هنا يأتي دور مدير الحزم والحزم نفسها سأشرح عن حزم rpm ومدير حزم فيدورا الجديد dnf الذي إعتمد منذ إصدار فيدورا 22 كبديل عن yum وهو مدير الحزم السابق لاكن مازال مستخدم في redhat و centos لان كما قلنا سابقا هذه توزيعات لا تهتم بأجدد إصدارات البرامج ربما بعد عدة سنوات يقومو بإعتماد dnf بدل yum .
حزم rpm هي عبارة عن ملفات مضغوطة فيها ملفات البرنامج و ملف التعليمات مثلا نقل هذا المف إلى هذا المجلد و تعليملت قبل التثبيت وممكن تعليمات بعد التثبيت نحنى لا نراها هي تعليمات لمدير الحزم الذي يقوم بما يلزم ومن هذه التعليمات الإعتماديات التي يحتاجها البرنامج حتى يتم تنزيلها مع البرنامج ويمكن أن تكون هذه الإعتماديات أيضا تعتمد على حزم أخرى وهكذا... لهذا دور مدير الحزم مهم جدا ويوفر علينا الكثير...الأن من يكتب هذه التعليمات ويقوم بالتحزم ؟ في المستودعات الرسمية المسؤولين عن التوزيعة هم من يقومو بذالك ...أما المستودعات الغير رسمية يقوم بعمل الحزم ما يسمى المجتمع أي اشخاص مثلي ومثلكم وهو أمر نحتاج تعلمه إسمه التحزيم حين هناك شروط وطرق للأمر والأمر ليس عشوائي حتى تسمية الحزمة لها شروط الصراحة أنا لا أعرف أحزم لكن ممكن أن أتعلم هذا الأمر في المستقبل على العموم نصيحة هناك مستودعات غير رسمية لها مصداقية يمكن إضافتها والتنزيل منها عند الحاجة مثل مستودعات rpmfusion وهناك مستودعات قد لا تكون مشهورة وهنا قدر الإمكان يجب تجنب إضافة هكذا مستودعات.
يقوم مدير الحزم بتنزبل هذه الحزم من المستودعات ويقرا التعليمات الموجودة داخل الحزم ويقوم بحل مشكلة الإعتماديات ويقوم بتثبيت الحزم الازمة ويمكن منه حزف البرامج طبعا البرامج المثبته من الحزم وليس البرامج المحمولة ويمكن تحديث البرمج كلن على حدا أو تحديث النظام كاملا حيث يقارن إصدار البرامج بالمستودعات مع إصدارات البرامج المثبته ويقوم قبل التثبيت بالتحقق من سلامة الحزم ويمكن منه إضافة أو حذف أو تفعيل أو إقاف مستودع ما ويمكن الإستعلام عن الحزم والمستودعات والبحث عن البرامج والحزم والكثير من الأمور ... بعض الأمثلة .
الأن سأشرح أمر مهم في جنو لينكس كما قلت سابقا أن نظام جنو لينكس يمكن تشبيهه بلعبة ال lego حيث يمكن تركيبه من قطع متفرقة البرنامج في جنو لينكس كذالك مثال انا أبرمج برنامج لنسخ الأقراص وقام أحد قبلي ببرمجة برنامج يعمل على التحويل بين صيغ ملفات الصوت أو الفيديو البرنامج سيكون قطع مثلا سكربت ليحول بين mp3 إلى waveو.... وسكربت واجهة البرنامج الرسومية وهكذا ...انا في برنامج نسخ الأقراص قد احتاج سكربت ليقوم بالتحويل بين الصيغ وهو ما يعرف في برامج نسخ الأقراص make audio cd عندها بدل أن أكتب هذا السكربت من الصفر أستخدم سكربت برنامج التحويل بين الصيغ الذي تمت برمجته قبلي وهذا أمر ممكن لأن الرخصة تسمح بذالك وهذا الامر سيأدي إلى صغر حجم البرامج نسبيا على حسب يعني إذا كنت مسبقا ثبتت برنامج التحويل بين الصيغ ثم أتيت لأثبت برنامج نسخ الأقراص مثلا سيكون حجم التنزيل 2mb أما إذا لم يكن برنامج التحويل بين الصيغ موجود مسبقا سيكون حجم التحميل أكبر مثلا 3mb والعكس صحيح وهذا ما يسمى بالإعتماديات أي أن هذا البرنامج يعتمد على أقسام من برامج أخرى او يعتمد على برنامج أو سكربت أخر كليا .
الأن كيف نعرف أن هذا البرنامج يحتاج إعتماديات أخرى هنا يأتي دور مدير الحزم والحزم نفسها سأشرح عن حزم rpm ومدير حزم فيدورا الجديد dnf الذي إعتمد منذ إصدار فيدورا 22 كبديل عن yum وهو مدير الحزم السابق لاكن مازال مستخدم في redhat و centos لان كما قلنا سابقا هذه توزيعات لا تهتم بأجدد إصدارات البرامج ربما بعد عدة سنوات يقومو بإعتماد dnf بدل yum .
حزم rpm هي عبارة عن ملفات مضغوطة فيها ملفات البرنامج و ملف التعليمات مثلا نقل هذا المف إلى هذا المجلد و تعليملت قبل التثبيت وممكن تعليمات بعد التثبيت نحنى لا نراها هي تعليمات لمدير الحزم الذي يقوم بما يلزم ومن هذه التعليمات الإعتماديات التي يحتاجها البرنامج حتى يتم تنزيلها مع البرنامج ويمكن أن تكون هذه الإعتماديات أيضا تعتمد على حزم أخرى وهكذا... لهذا دور مدير الحزم مهم جدا ويوفر علينا الكثير...الأن من يكتب هذه التعليمات ويقوم بالتحزم ؟ في المستودعات الرسمية المسؤولين عن التوزيعة هم من يقومو بذالك ...أما المستودعات الغير رسمية يقوم بعمل الحزم ما يسمى المجتمع أي اشخاص مثلي ومثلكم وهو أمر نحتاج تعلمه إسمه التحزيم حين هناك شروط وطرق للأمر والأمر ليس عشوائي حتى تسمية الحزمة لها شروط الصراحة أنا لا أعرف أحزم لكن ممكن أن أتعلم هذا الأمر في المستقبل على العموم نصيحة هناك مستودعات غير رسمية لها مصداقية يمكن إضافتها والتنزيل منها عند الحاجة مثل مستودعات rpmfusion وهناك مستودعات قد لا تكون مشهورة وهنا قدر الإمكان يجب تجنب إضافة هكذا مستودعات.
يقوم مدير الحزم بتنزبل هذه الحزم من المستودعات ويقرا التعليمات الموجودة داخل الحزم ويقوم بحل مشكلة الإعتماديات ويقوم بتثبيت الحزم الازمة ويمكن منه حزف البرامج طبعا البرامج المثبته من الحزم وليس البرامج المحمولة ويمكن تحديث البرمج كلن على حدا أو تحديث النظام كاملا حيث يقارن إصدار البرامج بالمستودعات مع إصدارات البرامج المثبته ويقوم قبل التثبيت بالتحقق من سلامة الحزم ويمكن منه إضافة أو حذف أو تفعيل أو إقاف مستودع ما ويمكن الإستعلام عن الحزم والمستودعات والبحث عن البرامج والحزم والكثير من الأمور ... بعض الأمثلة .
- تثبيت firefox : يكون هكذا sudo dnf install firefox سيقوم مدير الحزم بتحديث قائمة إصدارات البراج ثم سيتم تنزيل حزمة برنامج فايرفوكس والحزم الذي قد يحتاجها ثم يتحقق من سلامة الملفات ثم يقوم بالتثبيت.
- حذف firefox :سيكون هكذا sudo dnf remove firefox.
- بحث عن إسم برنامج مثلا برنامج gedit وهو محرر نصوص :sudo dnf search gedit وهكذا ....
- الإستعلام عن حزمة ما :مثلا sudo dnf info gedit .
طبعا كل ما ذكر أمثلة ضرورية للشرح قد لا يكون الامر هكذا مئة في المئة خاصة قصة برنامج نسخ الأقراص.
أخر ملاحظة أولا البرامج المحمولة غالبا لا تحتاج إعتماديات لكن إذا إحتاجت ولم يعمل البرنامج نقرأ من وثائق البرنامج أو من ملف readme قد يأتي مع الملفات وهذه نصيحة أنصح بها بكل الحالات وإذا لم تحل المشكلة نلجأ إلى جوجل لنستفيد من خبرات وتجارب الأخرين.
2-التثبيت من المستودعات الغير رسمية:
ذات الشيء في الشرح في اﻷعلى لكن الحزم الموجودة فيه لم يقم بتحزيمها مطوري توزيعة فيدورا مثلا إذا كانت حزمة لبرنامج أو ثيم مثلا غالبا لا مشكلة لكن إذا كان المستودع فيه برماج أو حزم موجودة في المستودعات الرسمية لكن بإصدارات أجدد أو أقدم إن لم نكن حذرين سنحصل على الكثير من المشاكل لأن الامر سيأثر على سياسة التوزيعة وقد يأدي إلى تشابك بالحزم ومشاكل كبيرة ويصبح النظام غير مستقر ونصيحة أن لا تقومو بإضافة مستودعات توزيعة إلى توزيعة أخر لأن كل توزيعة لها سياستها من حيث إصدارات البرامج والحزم مثلا محرر نصوص gedit إصدار 2 يحتاج حزمة gtk إصدار 2 فقط فقمنا بإضافة مستودع فيه برنامج gedit إصدار 2 لكن لا يحنوي حزمة gtk إصدار 2 وهذه الحزمة موجودة بالمستودعات الرسمية لكن بإصدار 1 هنا تقع المشاكل لن يعمل البرنامج أو حتى لو تم ثبيت gtk إصدار 2 قد يكون برنامج أخر أكثر أهمية لا يعمل على gtk إصدار رقم 2 مثلا الواجهة نفسها وهنا سندخل بدوامة مشاكل كبيرة طبعا كما قلت سابقا هذا كلام من وحي الخيال لضرورة الشرح على العموم لفيدورا هناك مستودعات rpmfusion وهي تكمل المستودعات الرسمية تقريبا ستجد كل شيء في هذه المستودعات ما يميز هذه المستودعات انها مدروسة مثلا يوجد مستودعات rpmfusion لفيدورا 22 ومستودعات أخرى لفيدورا 21 وهكذا يعني الأمر مرتب ومدروس ولا مشكلة بإضافة هذه المستودعات وهذة المستودعات توفر برامج وحزم وتعريفات مغلقة المصدر لا تضعها فيدورا في مستودعاتها الرسمية لأنها تتعارض مع سياستها التي لا تضع حزم غير حرة في مستودعاتها لكن تسمح بإضافتها بعد التثبيت من قبل المستخدم.3-التثبيت من حزمة rpm :
ممكن أن نقوم بتنزيل حزمة rpm من أي موقع وتثبيتها من مدير الحزم sudo dnf install firefox.rpm وممكن من خلال أمر rpm مثال sudo rpm -i firefox.rpm هنا قد نواجه مشكلة اولا أمر rpm لا يحل مشكلة الإعتماديات مثل مدير الحزم dnf لكن dnf قد يفشل أيضا لأن ببساطة الذي قام بتحزيم الحزمة قد يكون لم يعطي معلومات عن الإعتماديات المطلوبة أو قد أغفل شيء لا ننسى أننا بشر خاصة إذا لم تكن حزمة رسمية وغالبا ستكون كذالك لأننا لسنا بحاجة لهذا الشيء إذا كانت الحزمة موجودة بالمستودعات الرسمية أو أن حزمة البرنامج قديمة تريد إعتماديات بإصدارات قديمة لم تعد متوفرة بالتوزيعات الحديثة على العموم حل الموضوع يكون يالقراءة من وئائق البرنامج عن الإعتماديات المطلوبة وتثبيتها ثم المحاولة مرة أخرى أو البحث عن طريقة التثبيت في جوجل قد يكون هناك حزم أحدث وتحل المشكلة .4-التثبيت من المصدر :
غالبا يكون ملف مضغوط نفك الضغط عنه ونثبت بعض البرامج والإعتماديات يدويا مثل gcc ونقرا طريقة التثبيت و الإعتماديات المطلوبة من ملف readme الذي يأتي مع الملفات أو من وثائق البرنامج المراد تثبيته غالبا سيكون هناك موقع للبرنامج أو ممكن أن نبحث في جوجل عن طريقة التثبيت.5-تثبيت برنامج محمول:
هو ليس تثبيت بمعنى التثبيت فقط نقوم بتنزيل الملفات ونضع في مكانها الصحيح أو نتركها في مكانها وعندما نريد أن نشغل البرنامج نذهب إلا المكان الموجود فيه ونشغله.6-تثبيت برنامج محمول من خلال سكربت:
أيضا هو ليس تثبيت بمعنى الكلمة لكن بدل أن نقوم بنقل الملفات إلى مكانها صحيح يدوبا يأتي مع الملفات سكربت مثلا إسمه install.sh أو setup.py لبعض مكتبات أو برامج المبرمجة بلغة python نعطي هذا السكربت صلاحيات التنفيذ ثم نشغله ليقوم بما يلزم .أخر ملاحظة أولا البرامج المحمولة غالبا لا تحتاج إعتماديات لكن إذا إحتاجت ولم يعمل البرنامج نقرأ من وثائق البرنامج أو من ملف readme قد يأتي مع الملفات وهذه نصيحة أنصح بها بكل الحالات وإذا لم تحل المشكلة نلجأ إلى جوجل لنستفيد من خبرات وتجارب الأخرين.