مقدمة:
أداة dnf اختصارا ل (Dandified YUM) هي مدير حزم لعدد من التوزيعات التي تستخدم نظام التحزيم rpm مثل RHEL، فيدورا، ألما لينكس، روكي لينكس…، ظهر أول مرة في فيدورا 18 في عام 2013 واستبدل مدير الحزم السابق في فيدورا المسمى yum في الإصدار 22.
كما أصبح مدير الحزم الافتراضي في توزيعة ريد هات إنتربرايز لينكس RHEL 8 وباقي التوزيعات المبنية عليها
يبسط صيانة الحزم عن طريق التحقق تلقائيًا من التبعيات وتحديد الإجراءات اللازمة لتثبيت أو إزالة أو تحديث أو إجراء أي عملية أخرى، كما يمكنه إدارة المستودعات من إضافة وحذف وتفعيل وإلغاء تفعيل دائم أو مؤقت.
تحديث الحزم:
- التحقق من وجود تحديثات:
باستخدام الأمر أدناه، يمكنك الحصول على قائمة بجميع الحزم القابلة للتحديث من المستودعات المفعلة على نظامك. يتحقق الأمر من التحديثات ولكنه لا يقوم بتنزيل أو تثبيت الحزم.
dnf check-update
- تحديث كامل النظام:
يمكن ترقية النظام والحزم المثبتة يدويًا إلى أحدث متضمنا ترقيعات للحزم وإصلاحات الأمان باستخدام الأمر التالي.
dnf update
- تحديث حزمة أو مجموعة من الحزم:
dnf update package_name
- استبعاد حزمة أو مجموعة حزم من التحديث:
هذا مفيد في حال كان هناك علة في حزمة ما وتريد تجنب تحديثها أو تريد الإبقاء على إصدار قديم لأي سبب كان.
dnf update --exclude package_name
أو اختصارا
dnf update -x package_name
مع استبدال package_name باسم الحزمة وإذا كان هناك أكثر من واحدة يفصل بينها بفاصلة ,.
- مزامنة الحزم مع المستودعات:
يقوم الأمر أدناه بمزامنة جميع الحزم المثبتة مع أحدث إصدار مستقر متاح من خلال المستودعات المفعلة، إذا لم يتم تحديد حزمة معينة، سيتم مزامنة جميع الحزم المثبتة.
dnf distro-sync
البحث عن الحزم:
يمكنك البحث عن الحزم كلمة عن طريق اسمها أو كلمات مفتاحية تصفها.
dnf search package_name
أحيانا تريد البحث عن حزمة ما لكن لا تعرف اسمها كما في الأمثلة التالية:
- ماهي الحزمة التي تقدم ملف ما في النظام مثل
/etc/hosts؟ - ماهي الحزمة التي تحتوي على الأمر
mkdir؟ - ماهي الحزمة التي تحتوي على برنامج
َadbأوfastboot؟
في هذه الحالة نستخدم الأمر التالي:
dnf provides expression
عرض معلومات عن الحزم:
لعرض المزيد من المعلومات التفصيلية حول حزمة ما سواء كانت مثبتة أو لا، يمكن استعمال الأمر أدناه لسرد جميع البيانات الوصفية لها مثل رقم الإصدار، الحجم، الرخصة، المستودع الذي تنتمي إليه ووصف عام لها.
dnf info package_name
تثبيت الحزم:
- تثبت الحزم:
يمكن تثبيت حزمة أو مجموعة من الحزم عن طريق فصلها بمسافة (Space) باستخدام الأمر التالي.
dnf install package_name
- إعادة تثبيت الحزم:
في حال عدم عمل حزمة ما مثل حذف أحد ملفاتها بالخطأ، يمكن إعادة تثبيتها باستخدام خيار إعادة التثبيت.
dnf reinstall package_name
- تنزيل الحزم دون تثبيتها:
بدلاً من تثبيت حزمة، يمكننا اختياريًا تنزيل حزمة ما من المستودع سواء كانت ثنائية (binary) أو مصدرية (SRPMs). بشكل افتراضي يتم تنزيل الحزمة في الدليل الحالي.
- للحزم الثنائية:
dnf download package_name
- للحزم المصدرية:
dnf download -- source package_name
إذا كنت ترغب في تنزيل الحزمة في دليل آخر فاستخدم خيار - destdir متبوعًا بمسار الدليل.
dnf download package_name --destdir /tmp/
- تثبيت حزمة rpm تم تنزيلها مسبقا:
في حالة وجود حُزْمَة RPM تم تنزيلها مسبقًا وتريد تثبيتها يمكن استخدام الأمر أدناه متبوعا بالمسار الكامل لحزمة RPM.
dnf install ~/package_name.rpm
حذف الحزم:
لحذف حزمة أو مجموعة من الحزم يمكن استعمال الأمر التالي.
dnf remove package_name
حذف الحزم غير الضرورية:
تساعد إزالة الحزم غير الضرورية -والتي هي تبعيات لحزم مثبتة من قبل المستخدم ولكن لم تعد مطلوبة من قبل أي حزمة- على تقليل مساحة التخزين.
dnf autoremove
العمليات على مجموعات الحزم:
من مزايا dnf إمكانية التعامل مع مجموعة من الحزم - عدة الحزم تحت اسم واحد تخدم جميعها نفس الهدف-، استخدامه يبسط بشكل كبير عملية تثبيت البرامج بدل تثبيتها بشكل فردي.
- عرض مجموعات الحزم:
لسرد جميع مجموعات البرامج المتاحة يمكن اتباع الأمر أدناه:
dnf group list
- سرد حزم مجموعات الحزم:
لمعرفة الحزم التي تحتويها مجموعة ما يمكن اتباع الأمر أدناه:
dnf group info group_name
- تثبيت مجموعة الحزم:
dnf group install group_name
- حذف مجموعة الحزم:
dnf group remove group_name
- تحديث مجموعة الحزم:
dnf group update group_name
ملاحظة
لديك ثلاث حالات ل group_name كما هو موضح في المثال التالي وتطبق على التثبيت، الحذف والترقية:
"dnf group install "KDE Plasma Workspaces"
dnf group install kde-desktop-environment
dnf install @kde-desktop-environment
عرض قائمة الحزم:
ملاحظة:
- يمكن استخدام الأمر
moreلتسهيل التنقل. - يمكن تحديد اسم حزمة أو مجموعة من الحزم لعرضها.
- يمكن استعمال الأمر grep إن كنت تريد البحث عن حزمة ما.
- عرض جميع الحزم:
للاطلاع على قائمة الحزم المثبتة محليًا والمتاحة للتثبيت في المستودعات المفعلة.
dnf list
dnf list | more
dnf list package_name
- عرض الحزم المتاحة للتثبيت:
يقوم المر أدناه بسرد الحزم المتاحة للتثبيت في المستودعات المفعلة.
dnf list available
dnf list available | more
dnf list available package_name
- عرض الحزم المثبتة:
سيقوم الأمر أدناه بإرجاع قائمة بالحزم المثبتة على النظام الخاص بك،
dnf list installed
dnf list installed | more
dnf list installed package_name
dnf list installed | grep package_name
التعامل مع عمليات dnf (Transaction History):
يسمح الأمر dnf history للمستخدمين بمراجعة عمليات DNF المتمثلة في التثبيت والحذف والترقية… وترتيبها في جدول زمني.
- عرض جميع العمليات:
dnf history list
لعرض سجل العمليات (Transaction) في نطاق معين ، استخدم النموذج التالي:
dnf history list start_id..end_id
بالإضافة إلى عرض سجل Transaction يسمح لك dnf بالتراجع أو تكرارعملية معينة.
- التراجع عن Transaction:
dnf history undo id
- تكرار Transaction:
dnf history redo id
التعامل مع مستودعات الحزم:
يشرح هذا القسم كيفية إضافة مستودع،تفعيله وتعطيله باستخدام الأمر dnf config-manager.
يتم حفظ المستودعات في هذا الدليل /etc/yum.repos.d/.
- عرض المستودعات:
يعرض الأمر التالي مستودعات الحزم الموجودة على النظام بما في ذلك اسمها معرفها وحالتها:
dnf repolist --all
dnf repolist --enabled
dnf repolist --disabled
- إضافة مستودع:
dnf config-manager --add-repo repository_url
- تفعيل مستودع:
dnf config-manager --set-enabled repository_id
- تعطيل مستودع:
dnf config-manager --set-disabled repository…
خاتمة:
كان هذا دليلا مبسطا لإدارة الحزم باستخدام DNF مع أمثلة توضيحية. يمكن استخدامه أيضًا كمرجع سريع لكنه لا يغني عن التوثيق الرسمي لوجود العديد من الأوامر والخيارات التي لم أذكرها.
أرجو أن يكون هذا الدليل مفيدًا في رحلتك مع التوزيعات الريدهاتية.



















