في لينكس الأمر مختلف: إعرف أكثر عن الحزم، مدير الحزم، والمستودعات

معلومات عامة  -  بواسطة:   اخر تحديث:  2020/09/27
في لينكس الأمر مختلف: إعرف أكثر عن الحزم، مدير الحزم، والمستودعات

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


القصة من البداية


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


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


في لينكس الأمر مختلف: إعرف أكثر عن الحزم، مدير الحزم، والمستودعات


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


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


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


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

 


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


البرامج المصدرية


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


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


أمثلة على مدراء حزم:


  • YUM : الأداة المتكفلة بترقية، حذف، وتركيب الحزم من طرف التوزيعات المبنية على ريد هات، مثل ريد هات، فيدورا، وسنتوس…

  • Pacman : الأداة المتكفلة بترقية، حذف، وتركيب الحزم من طرف توزيعة آرش لينكس.

  • Apt : الأداة المتكفلة بترقية، حذف، وتركيب الحزم من طرف التوزيعات المبنية على دبيان، مثل دبيان، أوبنتو، ومنت… والجدول التالي يبين أهم أوامر مدير الحزم apt.


في لينكس الأمر مختلف: إعرف أكثر عن الحزم، مدير الحزم، والمستودعات
أوامر مدير الحزم apt

 



تصنيف المستودعات


يوجد هناك عدة أقسام للمستودعات  -ولنأخذ توزيعة كدبيان مثالا- فتقسم لمستودعات حسب إحترامها لإرشادات دبيان للبرمجيات الحرة.


● main: هو القسم الرئيسي لحزم دبيان والتي تحترم معايير دبيان للبرمجيات الحرة ويضم أغلب حزم التوزيعة.


● non-free : هو القسم الذي يجمع الحزم غير الحرة والتي لا تحترم معايير دبيان للبرمجيات الحرة فهي لا تكون مدمجة بالتوزيعة ولا تحظى بدعم رسمي من المطورين.


● contrib : هذا القسم يخص الحزم التي تحترم معايير دبيان للبرمجيات الحرة لكنها تعتمد على الحزم الغير حرة non-free.


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


● backports : هي خدمة تعيد بناء مجموعة من الحزم الخاصة بالإصدارة الإختبارية (testing) لتعمل على الإصدارة المستقرة.


● debports : جهاز أو حاسوب للبناء التلقائي (auto-builder) الهدف منه هو توفير بنية للمعماريات غير الرسمية في إنتظار دمجها في أرشيف دبيان الرئيسي.




مستودعات الطرف الثالث


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


في لينكس الأمر مختلف: إعرف أكثر عن الحزم، مدير الحزم، والمستودعات
المستودعات نظام أوبنتو

لماذا يجب أن نقول غنو/لينكس .. أسئلة شائعة يجيبها مطور المشروع ريتاشرد ستولمون

الدخول على المستودعات: 


● يجب عليك الدخول بصلاحيات المستخدم الجذر root والذي يعتبر كصلاحية الadministrator في نظام الويندوز، وهذا بأمرين الأول إستخدام الأمر sudo التي تعطيتنا صلاحيات تكافئ مدير النظام أو إستعمل الأمر su. وصلاحيات مدير النظام تسمح لنا باستخدام مدير الحزم apt من تنزيل، حذف، وتحديث البرامج، والتعديل على ملف المستودعات.

 

● إعداد ملف sources.list الذي يحتوي على المستودعات التي تريد أن نقوم بجلب البرامج والتحديثات منها، وهو ملف موجود على المسار التالي etc/apt/sources.list/ والتعديل يكون على المستودعات بالطريقة التالية، يوجد طرق أخرى مثل إستخدام برنامج software sources ذو الواجهة الرسومية، أولا نحدد محرر النصوص الذي تريد أن تستخدمه لفتح ملف المستودعات، وكما ذكرت سابقا يجب أن تملك صلاحية مدير النظام، لأن الملف موجود على مسار يحتاج للتعديل عليه أن تملك صلاحية إدارية.




في بعض التوزيعات يأتي ملف المستودعات جاهز، توزيعة أوبنتو مثلا تأتي المستودعات في التوزيعة، أما توزيعة دبيان مثلا تحتاج لإضافة المستودعات يدويا ولاتكون موجودة مسبقا إلا مستودع التحديثات الأمنية.