الدليل الشامل لإدارة الحزم في لينكس: من RPM و YUM إلى DNF و APT
إدارة البرامج والحزم (Package Management) هي القلب النابض لأي نظام تشغيل Linux. سواء كنت تعمل كـ Linux System Administrator، أو DevOps Engineer، أو تُدير سيرفرات على السحاب (Cloud Infrastructure)، فإن فهم كيفية تثبيت البرامج، تحديثها، وإدارة تبعياتها (Dependencies) يُعد مهارة أساسية لا غنى عنها.
في هذا الدليل العملي، سنشرح مفهوم مدير الحزم (Package Manager)، وكيف تطورت أدوات إدارة البرامج في لينكس، والفرق الجوهري بين الأدوات من منخفضة المستوى (Low-Level) وعالية المستوى (High-Level).
1. ما هو مدير الحزم (Package Manager) في لينكس؟
Package Manager هو نظام برمجي مسؤول عن أتمتة عملية التعامل مع التطبيقات والبرامج داخل نظام لينكس، حيث يتيح لك:
-
تثبيت البرامج (Install): تنزيل وتنصيب الأكواد البرمجية الجاهزة.
-
حذف البرامج (Remove/Uninstall): إزالة التطبيقات مع ملفات إعداداتها cleanly.
-
تحديث البرامج (Update/Upgrade): ترقية البرامج إلى أحدث الإصدارات الأهم أمنياً وتطبيقياً.
-
إدارة التبعيات (Dependencies Resolution): التحقق من وجود جميع المكتبات والبرامج الأخرى التي يحتاجها البرنامج ليعمل بدون أخطاء.
-
البحث والاستكشاف (Search & Query): البحث في مستودعات البرامج المتاحة للنظام.
بدلًا من تنزيل ملفات تثبيت مضغوطة وإعدادها يدويًا لكل تطبيق مثل (Nginx, Apache, MySQL, Docker, Ansible)، يقوم مدير الحزم بتنفيذ العملية كاملة بأمر واحد.
2. إدارة الحزم في عائلة Red Hat / CentOS / RHEL
تستخدم عائلة Red Hat نظامين من أدوات إدارة الحزم: أدوات مادية منخفضة المستوى وأدوات ذكية عالية المستوى.
أولاً: RPM (Red Hat Package Manager) – Low-Level Manager
هو الأداة الأساسية لإدارة ملفات الحزم التي تنتهي بـ
.rpm.-
الميزة: سريع ومباشر للتثبيت المحلي.
-
الشهير بـ (المشكلة): لا يستطيع RPM حل التبعيات (Dependencies) تلقائياً. إذا كان البرنامج سين يحتاج مكتبة ص، فسيخبرك RPM بالفشل وتتولى أنت البحث عنها يدويًا.
أهم أوامر RPM العملية:
| الأمر | الوظيفة |
rpm -i package.rpm |
تثبيت برنامج من ملف محلي |
rpm -e package |
حذف برنامج مثبت |
rpm -q package |
الاستعلام عن وجود البرنامج في النظام |
rpm -qa |
عرض قائمة بجميع البرامج المثبتة على النظام |
rpm -qi package |
عرض معلومات وتفاصيل عن حزمة معينة |
rpm -ql package |
عرض مسارات الملفات التابعة للحزمة |
ثانياً: YUM و DNF – High-Level Managers
لحل مشكلة التبعيات في RPM، ظهرت أدوات عالية المستوى تقوم بالبحث في المستودعات (Repositories) وتحميل الحزمة مع كافة ملحقاتها تلقائياً.
1. YUM (Yellowdog Updater Modified)
كان YUM هو الخيار القياسي لسنوات طويلة في CentOS 7 و RHEL 7. يقوم YUM بقراءة ملفات الـ RPM وفحص المتطلبات وتنزيلها مرتبة.
2. DNF (Dandified YUM) – الجيل الحديث
في الإصدارات الحديثة (مثل RHEL 8/9 و Fedora و AlmaLinux / Rocky Linux)، تم استبدال YUM رسمياً بـ DNF.
-
لماذا DNF؟ يستهلك ذاكرة أقل، أسرع في تحليل التبعيات (Dependency Resolution)، ويوفر API أفضل للمطورين. (ملاحظة: ما زال أمر
yumيعمل في الأنظمة الحديثة كرمز اختصار يوجّه أمرك إلى DNF مباشرة).
مقارنة سريعة بين RPM و YUM/DNF:
| وجه المقارنة | RPM | YUM / DNF |
| المستوى (Level) | Low-Level | High-Level |
| مصدر الحزمة | يتطلب ملف .rpm محلي |
يجلبه تلقائياً من الـ Repositories |
| حكم التبعيات | يدوياً (يفشل إذا نقصت مكتبة) | تلقائياً (تحميل وتثبيت ذكي) |
3. إدارة الحزم في عائلة Debian / Ubuntu (مقارنة سريعة)
إذا كنت تعمل على سيرفرات Ubuntu أو Debian، فإن النظام المقابل هو:
-
dpkg(Low-Level): يتعامل مع الملفات ذات الامتداد.deb(يشبه RPM). -
APT(Advanced Package Tool): الأداة عالية المستوى الأكثر انتشاراً لتثبيت وإدارة البرامج وحل التبعيات (تشبه YUM/DNF).
أشهر أوامر APT:
Bash
# تحديث قائمة المستودعات
sudo apt update
# ترقية البرامج المثبتة
sudo apt upgrade
# تثبيت برنامج جديد
sudo apt install nginx
4. ما هو مستودع البرامج (Repository)؟
الـ Repository (Repo) هو سيرفر أو مجلد يحتوي على الحزم البرمجية وملفات الفهرس الخاصة بها. وينقسم إلى:
-
Remote Repositories: مستودعات رسمية موثوقة عبر الإنترنت تابعة للتوزيعة.
-
Local Repositories: مستودعات محلية يتم إنشاؤها داخل شبكة الشركة لتوفير الباندويث ولأغراض الأمان (Offline Environment).
-
Third-Party Repositories: مستودعات خارجية تضيفها لتثبيت برامج غير مدرجة رسمياً (مثل مستودع Docker أو EPEL).
مسار إعدادات المستودعات في Red Hat / CentOS:
يتم تخزين ملفات الإعدادات في المسار التالي:
Bash
/etc/yum.repos.d/
تكون الملفات بداخل هذا المسار بكتلة امتداد
.repo.مثال لملف .repo مخصص:
Ini, TOML
[custom-repo]
name=My Corporate Linux Repository
baseurl=http://repo.example.com/centos/9/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.example.com/RPM-GPG-KEY-custom
-
[custom-repo]: معرّف المستودع. -
baseurl: الرابط الذي يحتوي على الحزم. -
enabled=1: تفعيل المستودع أثناء البحث والتثبيت. -
gpgcheck=1: التحقق من التوقيع الرقمي للحزمة لضمان أمانها وعدم التلاعب بها.
5. استكشاف الأخطاء وإصلاحها (Troubleshooting)
أثناء العمل اليومي، قد تواجه بعض المشاكل الشائعة:
1. مشكلة قفل قاعدة البيانات (Transaction Lock)
تحدث عندما تحاول التثبيت بينما ينفذ النظام تحديثاً في الخلفية:
-
السبب: وجود أداة أخرى حاكِمة لملف Lock.
-
الحل: انتظر حتى ينتهي التحديث أو تحقق من العمليات الشغالة عبر
ps aux | grep yumأوps aux | grep apt.
2. خطأ فشل مفتاح الأمان (GPG Key Retrieval Failed)
-
السبب: عدم استيراد المفتاح الرقمي الخاص بالمستودع الجديد.
-
الحل: قم باستيراد المفتاح يدويًا:
Bash
rpm --import http://repo.example.com/RPM-GPG-KEY-custom
الخلاصة
فهم الفرق بين أدوات إدارة الحزم المنخفضة المستوى (RPM / dpkg) والعالية المستوى (DNF / YUM / APT) يمنحك قدرة عالية على التحكم في البيئات السحابية والسيرفرات. احرص دائماً على اعتماد الأدوات الحديثة مثل DNF على توزيعات Red Hat و APT على توزيعات Debian، مع الحفاظ على تحديث المستودعات وتأمين مفاتيح الـ GPG للحفاظ على استقرار وأمان سيرفراتك.
إرسال التعليق