أدوات المستخدم

أدوات الموقع


linux-packages-repositories

المستودعات ونظام التحزيم ومدير الحزم على لينكس

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

الأمر مختلف في لينكس.

عندما بدأ تطوير نظام لينكس سنة 1991م كان الناس يبنون البرامج من المصدر إن أرادوا تثبيتها على أنظمتهم. كنتَ لتحمّل هذه البرمجيات التي تريدها (أو لعلك قد تحصل عليها على قرص CD) ثم تبنيها من المصدر لعدة ساعات أو حتى أيام قبل أن تكتمل عملية البناء. بالطبع هذه العملية صعبة، وقد تتطلب البرمجيات منك أن تبني برمجيات اعتمادية أخرى قبل أن تتمكن من بنائها، وهو ما قد يأخذ أيامًا أخرى. الاعتماديّات (Dependencies) هي برمجيات ومكتبات برمجية أخرى يحتاجها البرنامج المطلوب ليعمل، ومن دونها لن يعمل البرنامج (مثلًا عندما تريد تشغيل لعبة ويطلب منك تحميل directx9، فهنا directx9 اعتمادية لتلك اللعبة).

لحل هذه المشكلة ظهر سنة 1994م أول مدير تحزيم، وهو نظام PMS (اختصار لـPackage Manager System) التابع لتوزيعة Bogus Linux، كما ظهر مدير التحزيم dpkg (اختصار لـDebian package system) سنة 1994م وRPM (اختصار لـRed Hat Package Manager) سنة 1995م. نظام التحزيم (Packaging System) هو البرمجية المسؤولة عن إنشاء الحزم وإدارتها، بحيث لا يُحتاج إلى بنائها من المصدر، بل يكفي تثبيت الحزمة واعتمادياتها (والمبنية هي الأخرى على شكل حزم) لتثبيت البرامج المطلوبة، وهو ما يوفر الكثير من الوقت والجهد على المستخدمين.

الحزمة (Package) هي قطعة برمجية مبنية بالفعل من المصدر يمكن تثبيتها مباشرةً على أي نظام تشغيل يعمل بنفس المعمارية التي بُنيت عليها الحزمة عند بنائها من المصدر. وهي تشبه ملفات .exe على ويندوز. حاليًا أشهر أنواع الحزم المتوفرة هي حزم .deb (المحزمة بنظام dpkg) وحزم .rpm (المحزّمة بنظام RPM). تعمل حزم .deb على جميع التوزيعات الدبيانية (أي التوزيعات المبنية على دبيان)، بينما تعمل حزم .rpm على جميع التوزيعات الريدهاتية (أي التي تستعمل نظام تحزيم RPM).

لاحظ أن اسم مدير التحزيم الخاص بريدهات هو RPM، واسم صيغة التحزيم هو .rpm كذلك، عكس الوضع في التوزيعات الدبيانية حيث أن اسم مدير التحزيم هو dpkg، بينما تأتي الحزم الدبيانية بصيغة .deb.

إن برمجيات التحزيم مثل dpkg وrpm هي برمجيات منخفضة المستوى، أي أنها تقوم بعددٍ محدود من العمليات المتعلقة بتثبيت الحزم وإدارة ملفّاتها، لكنها غير قادرة على تحديثها مثلًا أو الاتصال بالمستودعات لجلب الحزم منها، ولذا ظهرت الحاجة إلى برامج إدارة الحزم (Package Managers) مثل برمجيات apt وdnf، وهي المسؤولة عن تثبيت وإزالة وتحديث الحزم، وجلب الحزم من مستودعاتها والتحقق من سلامتها بالإضافة إلى الكثير من الإمكانيات الأخرى المتوفرة.

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

انظر مثلًا هذه الحزمة الدبيانية المسماة "Hello"، يمكنك تحميلها وتثبيتها على أوبونتو، كما يمكنك نسخها ومشاركتها مع أصدقائك وفعل أي شيء تريده بها. وهي تحتوي برنامج GNU Hello (مجرد برنامج بسيط يطبع جملة Hello World في الطرفية عندما يكتب المستخدم hello في الطرفية).

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

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

يمكنك مثلًا تصفح مستودعات توزيعة لينكس منت حسب كل إصدار، ورؤية الحزم المتوفرة لك للتثبيت. أو يمكنك استعراض الحزم المتوفرة في مستودعٍ ما بعد أن تضيفه إلى نظام عبر مدير الحزم سينابتك.

linux-packages-repositories.txt · آخر تعديل: 2023/12/20 17:08 بواسطة 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki