Dandified Yum (DNF) عبارة عن واجهة أمامية قوية لإدارة الحزم لتوزيعات Linux المستندة إلى RPM. سنعرض لك هنا كل ما تحتاج إلى معرفته حول مدير الحزم DNF وأوامر DNF المختلفة التي يمكنك استخدامها لإدارة حزمك.
لماذا تستخدم مدير الحزم DNF؟
تحتوي العديد من توزيعات Linux، مثل Red Hat Enterprise Linux وCentOS Stream وFedora Linux، على مستودعات خاصة بها تستخدم ملفات RPM Package Manager (RPM) لتوزيع البرامج والوثائق والمكتبات. إنه تنسيق أرشيف مضغوط يمكنه تشغيل البرامج النصية والتحقق من محتواه الداخلي وتخزين بيانات التعريف الخاصة بالحزمة.
أحد عيوب RPM هو أنه لا يمكنه تثبيت حزمة ما إلا إذا كانت المتطلبات الأساسية الخاصة بها موجودة في النظام. يعمل DNF على سد هذه الفجوة من خلال جلب التبعيات المطلوبة لحزمتك وحل أي تعارضات برمجية أثناء التثبيت.
بالإضافة إلى ذلك، يوفر DNF أيضًا أدوات إضافية لتثبيت وإدارة الحزم في نظامك. ويشمل ذلك القدرة على إضافة مستودعات خارجية، والبحث عن محتوى بعيد، بالإضافة إلى التنظيف المناسب للنظام ودعم التراجع.
جيد ان تعلم: لمعرفة المزيد عن توزيعات Linux الأخرى المستندة إلى RPM، يرجى إلقاء نظرة على AlmaLinux وRocky Linux.
تثبيت الحزم باستخدام DNF
يعد تثبيت الحزم الوظيفة الأساسية لكل مدير حزم. لتثبيت حزمة بعيدة في DNF، قم بتشغيل dnf install
متبوعًا باسم الحزمة:
ال install
يحتوي الأمر الفرعي على عدد من العلامات التي تسمح لك بتغيير سلوكه الافتراضي. على سبيل المثال، يمكنك تضمين --setopt=install_weak_deps=False
لتخطي “التبعيات الضعيفة” عند تثبيت البرنامج.
نصيحة:هل تبحث عن تأمين تثبيت Linux الخاص بك؟ تعلم كيفية تشفير الملفات في Linux باستخدام Tomb.
جلب ملفات RPM وتثبيتها باستخدام DNF
يمكن لـ DNF أيضًا جلب حزم .rpm العارية من مستودعك الأصلي. يمكن أن يكون هذا مفيدًا إذا كنت تقوم بإعداد جهاز غير متصل بالإنترنت وتريد تحميل حزم RPM عليه.
يمكنك حتى استخدام install
قم بتثبيت الأمر الفرعي على ملف .rpm الخاص بك على جهازك. سيؤدي القيام بذلك إلى منحك ميزة حل التبعيات لحزمك غير المخزنة.
sudo dnf install ~/your-package.rpm
إعادة تثبيت الحزم الموجودة
علاوة على ذلك، يمكن لـ DNF فرض إعادة تثبيت البرامج على جهازك الحالي. قد يكون هذا مفيدًا إذا كنت تواجه مشكلة مع حزمة موجودة وتريد التأكد من تثبيتها بشكل صحيح.
ال reinstall
يأخذ الأمر الفرعي أيضًا عددًا من العلامات الاختيارية التي تعدل سلوكه. على سبيل المثال، --allowerasing
سوف يقوم العلم بإزالة أي تعارض محتمل في التبعيات بمجرد إعادة تثبيت البرنامج.
نصيحة: تعرف على كيفية إصلاح تثبيتات الحزم المعطوبة في Linux.
التعامل مع مجموعات الحزم في حالة عدم إكمال المهمة
تعتبر مجموعات الحزم ميزة فريدة من نوعها لعدم اكتمال التثبيت لتثبيت البرامج حول موضوع أو أداة. يمكن أن يكون هذا مفيدًا إذا كنت تريد إعداد إصدار سطح مكتب متسق أو إدارة مجموعات من البرامج.
للاطلاع على مجموعات الحزم المتوفرة لنظامك، قم بتشغيل الأمر التالي:
يمكنك التحقق من محتوى مجموعة الحزمة عن طريق تشغيل info
حجة بعد group
الأمر الفرعي. على سبيل المثال، تشغيل dnf groups info Editors
سيتم طباعة وصفًا موجزًا للمجموعة والحزم التي ستقوم بتثبيتها.
تثبيت وإزالة مجموعات الحزم
ال group
يتعامل الأمر الفرعي أيضًا مع عملية التثبيت الخاصة به. قم بتشغيل group
الأمر الفرعي مع install
الحجة، ثم قم بتوفير اسم المجموعة التي تريدها لنظامك:
sudo dnf group install Editors
لإزالة مجموعة الحزمة بأكملها، استبدل install
حجة مع remove
متبوعًا باسم المجموعة التي تريد إزالتها:
sudo dnf group remove Editors
البحث عن الحزم المتاحة
من أهم ميزات كل مدير حزم قدرته على البحث في المستودعات البعيدة عن البرامج المتاحة. للقيام بذلك في حالة عدم إكمال المهمة، استخدم search
الأمر الفرعي:
بشكل افتراضي، يطابق DNF استعلام البحث الخاص بك مع اسم الحزمة البعيدة وملخصها الموجز. يمكنك تغيير هذا السلوك لتضمين جميع حقول البيانات الوصفية المتاحة عن طريق إضافة --all
علَم:
البحث المتقدم عن الحزمة في DNF
بالإضافة إلى “البحث”، يأتي DNF أيضًا مع repoquery
أمر فرعي يسمح لك بالبحث عن الحزم وطباعتها بتنسيق “NEVRA”. وهذا مفيد إذا كنت تقوم بإنشاء نص برمجي سيقوم بتثبيت حزم معينة باستخدام DNF وRPM.
يقوم الأمر التالي بطباعة جميع حزم “emacs” المتوفرة لنظام Fedora 40 بتنسيق NEVRA:
وبصرف النظر عن ذلك، repoquery
يأخذ الأمر الفرعي علامات تصفية إضافية يمكنك استخدامها لتحسين عمليات البحث عن الحزمة الخاصة بك. على سبيل المثال، --installed
سوف يعرض العلم فقط الحزم الموجودة على جهازك و --depends
سيتم طباعة تبعيات هذه الحزمة:
dnf repoquery --installed --depends emacs
جلب قوائم الحزم في DNF
ال list
الأمر الفرعي هو طريقة مرنة للبحث بين حزم DNF المتاحة من جهازك المحلي ومستودعات التخزين البعيدة. على سبيل المثال، يسرد الأمر التالي جميع الحزم المثبتة في نظامك.
مشابه ل repoquery
، ال list
يمكن للأمر الفرعي أن يأخذ علامات تصفية إضافية، مثل --recent
، الذي سيقوم بطباعة أحدث الحزم المتوفرة في مستودعاتك البعيدة.
علاوة على ذلك، list
يمكن أن يكون الأمر الفرعي أيضًا أداة مفيدة للتحقق بسرعة من الترقيات المتاحة لنظامك:
تمتد هذه الميزة أيضًا إلى الأوامر الفرعية الموجهة للصيانة في DNF. على سبيل المثال، --autoremove
يسرد العلم جميع التبعيات المعلقة على النظام:
ترقية حزم النظام
مع DNF، يمكنك ترقية كافة الحزم المثبتة باستخدام أمر فرعي واحد: upgrade
وهذا يعني أن ترقية النظام تعني دائمًا أنك ستحصل على أحدث إصدار متاح من حزمك:
إذا كنت تريد فقط التحقق من التحديثات، استخدم check-update
الأمر الفرعي بدلا من ذلك:
تشغيل الحد الأدنى من ترقيات النظام
بصرف النظر عن ذلك، يمكن لـ DNF إجراء “ترقيات محافظة” حيث ستقوم فقط بتثبيت إصلاحات الأمان والأخطاء للبرامج الموجودة. وهذا مفيد عندما تقوم بتشغيل خدمة بالغة الأهمية، ولا تريد إدخال تغييرات جذرية على الجهاز:
لعِلمِكَ: تعرف على كيفية حماية بياناتك من الجهات الضارة عن طريق تثبيت بعض أفضل توزيعات Linux-libre اليوم.
ترقية وتخفيض الحزم الفردية
مع ذلك، يمكنك ترقية الحزم الفردية عن طريق تقديم اسمها بعد upgrade
على سبيل المثال، يقوم الأمر التالي بتحديث GNU Emacs إلى الإصدار 29.3 في Fedora 40:
sudo dnf upgrade emacs-1:29.3-6.fc40.x86_64
من ناحية أخرى، يدعم DNF أيضًا تخفيض إصدار الحزم بشرط وجود إصدار أقل في مستودع بعيد نشط حاليًا:
ملحوظة: تشغيل downgrade
سيؤدي الأمر الفرعي إلى خفض رقم إصدار أي حزمة تعتبر اعتمادًا كبيرًا على برنامجك.
استخدام الاستشارات الأمنية لترقية الحزم
تشكل الاستشارات الأمنية جزءًا حيويًا من مواكبة أحدث الثغرات الأمنية في البرامج. ولتحقيق هذه الغاية، توفر DNF --advisory
و --cve
الأعلام التي تقبل رموز الاستشارة الأمنية الخاصة بـ Fedora وأرقام معرف CVE.
على سبيل المثال، يقوم الأمر التالي بترقية مكتبة xz في نظام Fedora 40 لمعالجة ثغرة أمنية خطيرة:
sudo dnf upgrade --refresh --advisory=FEDORA-2024-d02c7bb266
إلغاء تثبيت حزم النظام باستخدام DNF
لإلغاء تثبيت الحزم، قم بـ remove
سيؤدي الأمر الفرعي إلى إزالة الحزم من نظامك:
على غرار Debian وUbuntu، يوفر DNF أمرًا فرعيًا لإزالة ملفات التبعية “المعلقة”. لإزالة هذه الحزم غير الضرورية من جهازك، قم بتشغيل الأمر التالي:
إزالة بيانات التعريف الخاصة بالحزمة والمستودع
بصرف النظر عن التبعيات المعلقة، يقوم DNF أيضًا بإنشاء ملفات بيانات وصفية وذاكرة تخزين مؤقتة إضافية عند تثبيت حزمة أو تعديلها. قد يكون هذا مشكلة إذا كنت تريد توفير مساحة على جهاز محدود التخزين.
لإصلاح هذه المشكلة، قم بتشغيل clean
الأمر الفرعي متبوعًا بـ “الكل”:
ال clean
يمكن للأمر الفرعي أيضًا إزالة ملفات ذاكرة التخزين المؤقت المحددة بدلاً من إزالة كل شيء مرة واحدة. على سبيل المثال، يمكنك تشغيل dnf clean
باستخدام وسيطة “الحزم” لإزالة جميع ملفات الحزم المخزنة مؤقتًا دون حذف أي بيانات وصفية:
بالإضافة إلى “الكل” و”الحزم”، dnf clean
يقبل “dbcache” و”expire-cache” و”metadata”. الأول يمسح بيانات التعريف المخزنة مؤقتًا، والثاني يفرض فحص التحقق من صحة ذاكرة التخزين المؤقت، والثالث يحذف بيانات التعريف بالكامل.
جيد ان تعلم: تعرف على بعض أفضل الطرق لحذف الملفات بشكل آمن في Linux.
التراجع عن تغييرات النظام في حالة عدم إكمال المهمة
من بين الميزات الرئيسية الأخرى لبرنامج DNF قدرته على مراجعة سجل مدير الحزم الخاص به والتراجع عن التغييرات التي أجراها على النظام. وقد يكون هذا مفيدًا إذا ارتكبت خطأ أثناء تكوين جهازك وترغب في العودة إلى حالة نظيفة سابقة.
للبدء، قم بطباعة سجل التاريخ الحالي لنظامك:
ابحث عن نقطة في نظامك تريد الرجوع إليها. في حالتي، سأختار الرجوع إلى النظام إلى ما قبل تثبيت Emacs.
احصل على رقم معرف نقطة المعاملة الخاصة بك، ثم قم بتشغيل الأمر التالي لبدء عملية التراجع:
sudo dnf history rollback ID-NUMBER
تأكد من أن DNF قام بإرجاع نظامك إلى نقطة المعاملة الخاصة بك عن طريق تشغيل: dnf history
.
يمكنك أيضًا إزالة المعاملات الفردية باستخدام وسيطة “التراجع”. على سبيل المثال، يزيل الأمر التالي Emacs على نظامي ولكنه لا يمس تثبيت NodeJS اللاحق:
sudo dnf history undo ID-NUMBER
ملحوظة: تؤدي وسيطة التراجع إلى عكس أمر المعاملة في dnf history
وهذا يعني أنه يمكنك تشغيل dnf history undo
على dnf remove
أمر لإعادة تثبيت الحزمة القديمة.
تحليل حزم النظام الحالية
يوفر مدير الحزم DNF أيضًا أدوات وأعلامًا لتحليل حزم RPM على كل من المستودعات المحلية والبعيدة. على سبيل المثال، dnf info
يعرض الأمر ملخصًا تفصيليًا لأي ملف RPM:
بصرف النظر عن قراءة تفاصيل الحزمة، يمكنك أيضًا استخدام DNF للتحقق من مصدر ملف تكوين أو ملف ثنائي معين. للقيام بذلك، قم بتشغيل provides
الأمر الفرعي متبوعًا بالمسار المطلق للملف الذي تقوم بفحصه:
dnf provides /usr/bin/less
إدارة المستودعات في DNF
المستودعات هي شريان الحياة لكل مدير حزم. فهي تعمل كمصدر لجهازك للحزم الجديدة والتحديثات. ولتحقيق هذه الغاية، توفر DNF أيضًا مجموعة كبيرة من الأدوات للتعامل مع إدارة المستودعات بما في ذلك القدرة على إضافتها وإزالتها وتبديلها حسب الرغبة.
لإضافة مستودع جديد لـ DNF، قم بتشغيل config-manager
الأمر الفرعي مع --add-repo
العلم متبوعًا بعنوان URL لمستودع الطرف الثالث الخاص بك. على سبيل المثال، سيضيف الأمر التالي مستودع Tailscale إلى نظام Fedora الخاص بك:
sudo dnf config-manager --add-repo=https://pkgs.tailscale.com/stable/fedora/tailscale.repo
يمكنك إدراج جميع المستودعات النشطة بالإضافة إلى معرف المستودع الخاص بها في نظامك عن طريق تشغيل: dnf repolist --enabled
.
لتعطيل مستودع نشط، قم بتشغيل config-manager
مع ال --disable
العلم متبوعًا بمعرف المستودع الذي تريد تعطيله:
sudo dnf config-manager --disable tailscale-stable
ملحوظة: يمكنك إعادة تمكين المستودع المعطل باستخدام --enable
العلم مع معرف المستودع المعطل.
إزالة مستودع نشط في حالة عدم إكماله
ابدأ بتشغيل الأمر التالي لإدراج جميع المستودعات المتوفرة في النظام مع مسارات ملفاتها:
grep -E "^\[.*]" /etc/yum.repos.d/*
ابحث عن المستودع الذي تريد إزالته من القائمة، ثم انسخه إلى الحافظة. في حالتي، سأقوم بإزالة مستودع Tailscale DNF من جهازي.
احذف ملف .repo من نظامك عن طريق تشغيل sudo rm
متبوعًا بمسار الملف في الحافظة الخاصة بك.
يجري sudo dnf check-update
لتحديث قوائم مستودع جهازك.
إن تعلم أساسيات DNF هو مجرد الخطوة الأولى لفهم العالم المعقد لمديري الحزم في Linux. استكشف المزيد من هذا النظام البيئي المتنوع من خلال إلقاء نظرة على ورقة الغش الشاملة لمديري الحزم في Linux.