أمرات 27 «DNF» (فork من Yum) لإدارة باقات RPM في Linux

DNF المعروفة أيضًا بـ Dandified YUM هي مدير حزم جيل قادم للتوزيعات المعتمدة على RPM. تمت إضافتها لأول مرة في Fedora 18 وقد استبدلت أداة YUM في الإصدار الأخير من Fedora 22.

يهدف DNF إلى تحسين نقاط الضعف في YUM مثل الأداء واستخدام الذاكرة وقرار الاعتمادات والسرعة والعوامل الأخرى الكثيرة. يقوم DNF بإدارة الحزم باستخدام RPM ومكتبة libsolv ومكتبة hawkey. على الرغم من أنه لا يتم تثبيته افتراضيًا في CentOS و RHEL 7 ، يمكنك استخدامه جنبًا إلى جنب مع yum.

قد ترغب في قراءة المزيد حول DNF هنا:

  1. أسباب استبدال Yum بـ DNF

أحدث إصدار مستقر لـ DNF هو 1.0 (في وقت كتابة المشاركة) الذي تم إصداره في 11 مايو 2015. كتبت (وكتبت كل الإصدارات السابقة من DNF) بشكل رئيسي بلغة Python وتم إصدارها بترخيص GPL v2.

تثبيت DNF

DNF غير متوفر في المستودع الافتراضي لـ RHEL/CentOS 7. ومع ذلك، تأتي Fedora 22 مع DNF مُنفذًا رسميًا.

للتثبيت DNF على RHEL/CentOS الأنظمة، تحتاج أولاً لتثبيت وتمكين epel-release مستودع.

# yum install epel-release
OR
# yum install epel-release -y

على الرغم من أنه ليس أخلاقياً أن يستخدم ‘-y‘ مع يوم لأنه من المستحسن رؤية ما يتم تثبيته في نظامك. ومع ذلك إذا لم يهمك هذا كثيراً يمكنك استخدام ‘-y’ مع يوم لتثبيت كل شيء تلقائياً بدون تدخل المستخدم.

بعد ذلك، قم بتثبيت حزمة DNF باستخدام أمر يوم من epel-release مستودع.

# yum install dnf

بعد dnf تثبيتها بنجاح، حان الوقت لأن أريكم 27 استخدام عملي لـ أوامر dnf مع أمثلة ستساعدك على إدارة الحزم في توزيعات RPM بسهولة وفعالية.

1. تحقق من إصدار DNF

تحقق من إصدار DNF المثبت على نظامك.

# dnf --version

2. عرض جميع مستودعات DNF المفعلة

الخيار ‘repolist‘ مع أمر dnf، سيعرض جميع المستودعات المفعلة تحت نظامك.

# dnf repolist

3. عرض جميع مستودعات DNF المفعلة وغير المفعلة

الخيار ‘repolist all‘ سيطبع جميع المستودعات المفعلة/غير المفعلة تحت نظامك.

# dnf repolist all

4. عرض جميع الحزم المتاحة والمثبتة باستخدام DNF

الأمر ” dnf list” سيسرد جميع الحزم المتوفرة من جميع المستودعات والحزم المثبتة على نظام لينكسك.

# dnf list

5. عرض جميع الحزم المثبتة باستخدام DNF

بينما يُظهر أمر “dnf list” جميع الحزم المتاحة/المثبتة من جميع المستودعات. ومع ذلك، لديك خيار لإظهار قائمة الحزم المثبتة فقط باستخدام الخيار ” list installed ” كما هو موضح أدناه.

# dnf list installed

6. إظهار جميع الحزم المتاحة باستخدام DNF

بالمثل، الخيار “list available” سيقوم بإظهار جميع الحزم المتاحة للتثبيت من جميع المستودعات الممكّنة.

# dnf list available

7. البحث عن حزمة باستخدام DNF

إذا كنت لا تعرف الحزمة التي ترغب في تثبيتها، في مثل هذه الحالة يمكنك استخدام الخيار ” search ” مع أمر dnf للبحث عن الحزمة التي تتطابق مع الكلمة أو السلسلة (مثل nano).

# dnf search nano

8. رؤية ما الذي يوفر ملف/حزمة فرعية؟

خيار dnf ” provides ” يجد اسم الحزمة التي توفّر ملف/حزمة فرعية محددة. على سبيل المثال، إذا كنت ترغب في معرفة ما الذي يوفر “/bin/bash” في نظامك؟

# dnf provides /bin/bash

9. الحصول على تفاصيل حزمة باستخدام DNF

لنفترض أنك ترغب في معرفة معلومات عن حزمة قبل تثبيتها على النظام، يمكنك استخدام التبديل ” info ” للحصول على معلومات مفصلة عن حزمة (مثل nano) كما يلي.

# dnf info nano

10. تثبيت حزمة باستخدام DNF

لتثبيت حزمة تسمى nano، ما عليك سوى تشغيل الأمر أدناه وسيقوم بحل وتثبيت جميع التبعيات المطلوبة تلقائيًا للحزمة nano.

# dnf install nano

11. تحديث حزمة باستخدام DNF

يمكنك تحديث حزمة معينة (مثل systemd) وترك كل شيء في النظام دون تغيير.

# dnf update systemd

12. التحقق من تحديثات النظام باستخدام DNF

تحقق من تحديثات جميع حزم النظام المثبتة في النظام ببساطة.

# dnf check-update

13. تحديث جميع حزم النظام باستخدام DNF

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

# dnf update
OR
# dnf upgrade

14. إزالة/مسح حزمة باستخدام DNF

لإزالة أو مسح أي حزمة غير مرغوبة (مثل nano), يمكنك استخدام مفتاح “remove” أو “erase” مع أمر dnf لإزالتها.

# dnf remove nano
OR
# dnf erase nano

15. إزالة حزم اليتامى باستخدام DNF

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

# dnf autoremove

16. إزالة الحزم المخزنة مؤقتًا باستخدام DNF

A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.

# dnf clean all

17. الحصول على مساعدة حول أمر DNF محدد

يمكنك الحصول على مساعدة حول أي أمر dnf محدد (مثل clean) فقط من خلال تنفيذ الأمر التالي.

# dnf help clean

18. عرض جميع أوامر وخيارات DNF

لعرض المساعدة حول جميع أوامر dnf المتاحة والخيارات، اكتب ببساطة.

# dnf help

19. عرض تاريخ DNF

يمكنك استدعاء تاريخ dnf للاطلاع على قائمة الأوامر dnf التي تم تنفيذها بالفعل. بهذه الطريقة يمكنك معرفة ما تم تثبيته/إزالته مع الطابع الزمني.

# dnf history

20. عرض جميع حزم المجموعات

الأمر “dnf grouplist” سيقوم بطباعة جميع الحزم المتاحة أو المثبتة، إذا لم يتم ذكر شيء، سيقوم بسرد جميع المجموعات المعروفة.

# dnf grouplist

21. تثبيت حزمة مجموعة باستخدام DNF

لتثبيت مجموعة من الحزم المجمعة معًا كحزمة مجموعة (مثل البرمجيات التعليمية) ببساطة كما يلي.

# dnf groupinstall 'Educational Software'

22. تحديث حزمة مجموعة

لنقم بتحديث حزمة المجموعة (مثل البرمجيات التعليمية) من خلال تنفيذ الأمر التالي.

# dnf groupupdate 'Educational Software'

23. إزالة حزمة مجموعة

يمكننا إزالة حزمة المجموعة (مثل البرمجيات التعليمية) كما يلي.

# dnf groupremove 'Educational Software'

24. تثبيت حزمة من مستودع محدد

يجعل DNF من الممكن تثبيت أي حزمة محددة (مثل phpmyadmin) من مستودع (epel) ببساطة كما يلي،

# dnf --enablerepo=epel install phpmyadmin

25. مزامنة الحزم المثبتة مع الإصدار الثابت

الأمر “dnf distro-sync” سيوفر الخيارات اللازمة لمزامنة جميع الحزم المثبتة مع أحدث إصدار ثابت متاح من أي مستودع ممكّن. إذا لم يتم تحديد حزمة، سيتم مزامنة جميع الحزم المثبتة.

# dnf distro-sync

26. إعادة تثبيت حزمة

الأمر “dnf reinstall nano” سيقوم بإعادة تثبيت حزمة مثبتة بالفعل (مثل nano).

# dnf reinstall nano

27. تخفيض إصدار حزمة

الخيار “تخفيض الإصدار” سيقوم بتخفيض إصدار الحزمة المسماة (مثل acpid) إلى إصدار أقل إذا كان ذلك ممكنًا.

# dnf downgrade acpid
ناتج عينة
Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.

ملاحظتي: لم يقم DNF بتخفيض الحزمة كما يفترض. كما تم الإبلاغ عنها كخلل.

الاستنتاج

DNF هو الحالة العليا لمدير الحزم الحديث YUM. يميل إلى القيام بالكثير من المعالجة تلقائيًا والتي لن تحظى بإعجاب العديد من مسؤولي نظام Linux ذوي الخبرة، كما أعتقد. على سبيل المثال:

  1. --skip-broken لا يتم التعرف عليه بواسطة DNF ولا يوجد بديل.
  2. لا يوجد شيء مثل أمر ‘resolvedep‘ ومع ذلك يمكنك تشغيل dnf provides.
  3. لا يوجد أمر ‘deplist‘ للعثور على تبعية الحزمة.
  4. عند استبعاد مستودع، يعني أن الاستبعاد ينطبق على جميع العمليات، على عكس yum الذي يستبعد تلك المستودعات فقط في وقت التثبيت والتحديثات، إلخ.

العديد من مستخدمي Linux غير سعداء بالطريقة التي يتحرك بها نظام Linux. أولاً Systemd قام بإزالة نظام init v والآن سيقوم DNF بتحليل YUM قريبًا في Fedora 22 وفي وقت لاحق في RHEL و CentOS.

ما رأيك؟ هل التوزيعات وجميع بيئة Linux لا تقدر مستخدميها وتتحرك ضد إرادتهم. كما يقال في صناعة تكنولوجيا المعلومات – “لماذا تصلح إذا لم تكن معطلة؟”، ولا نظام init System V معطل ولا YUM.

هذا كل شيء للآن. يرجى إعلامي بأفكارك القيمة في التعليقات أدناه. قم بالإعجاب والمشاركة وساعدنا في الانتشار.

Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/