طريقة زيادة سرعة مدير حزم DNF على Fedora

من اشهر مشاكل DNF هي السرعة, سرعة التنزيل فيه بطيئه مع ان مرايا/خوادم فيدورا ممتازة ومشكلة انه يحتاج لتحديث قائمة الحزم كل مرة تريد تثبيت حزمة جديدة

سبب مشكلة السرعة هو ان DNF اختياره لاسرع المرايا/الخوادم سيء, ويختار مرايا بعيدة عن موقعك

في هذا الشرح سوف اشرح كيف تسرع DNF بعدة طرق وما الفائدة منها.
الشرح على Fedora 36 ومن المفترض يطبق على التحديثات القادمة.

يفضل بعد عمل كل التعديلات عمل امر sudo dnf clean all

تعديلات على اعدادات DNF

نقوم بتعديل اعدادات DNF

sudo nano /etc/dnf/dnf.conf

أختيار اسرع مرايا/خادم

لاختيار أسرع مرايا تلقائيا(هذا الخيار بمفردة يرفع السرعة بشكل ملحوظ)

fastestmirror=true

تفعيل الكاش

لتفعيل كاش يحتفظ بالحزم وقائمة الحزم ل 24 ساعة(سوف ياخذ مساحة من جهازك)

keepcache=true

بعد هذه التغييرات, سيقوم DNF باختيار اقرب خادم لديه(ليس دائما الافضل) و سيقوم بحفظ الحزم التي حملتها لمدة 24 ساعة.

تحديد الدول

كما ذكرنا سابقا DNF سيء في اختيار اسرع خوادم للتنزيل منها

الحل في ذلك هو تحديد الدول التي يمكن لDNF تنزيل منها فقط.
وذلك عن طريق تعديل ملفات المستودعات repo وتحديد الدول
هناك طريقتين للتعديل, بموجهه الاوامر و الواجهه الرسومية

ضع الدول الاقرب لك هنا, بشكل افتراضي سوف نستخدم de,fr,at وهي المانيا, فرنسا, النمسا وهي الاسرع للشرق الاوسط معظم الوقت.

واجهه رسوميه

اولا نفتح Nautilus(اذا كانت واجهتك غير جنوم, ضع اسم متصفح الملفات)
sudo nautilus /etc/yum.repos.d

ثم ادخل على ملفات المستودعات(.repo) وعدل رابط metalink لتضيف عليه الدول (ليس ضروري تعديل ملفات المستودعات التجريبية (testing) اذا لا تستخدمها)

اضيف &country==countries= لاخر روابط ال meta
مثال:
قبل التعديل:

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

بعد التعديل:

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch&country==countries=

هذا التعديل يطبق على RPMfusion ايضا

طريقة التيرمنال

لنعرف ملفات المستودعات الموجودة لديك:

ls /etc/yum.repos.d

ثم عدل كل ملف مستودع(.repo), ملفات مستودعات تجريبية(testing).
مثال
sudo nano /etc/yum.repos.d/fedora.repo
وعدل رابط metalink لتضيف عليه الدول

اضيف &country==countries= لاخر روابط ال meta
مثال:
قبل التعديل:

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

بعد التعديل:

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch&country==countries=

بامكانك اختيار اي دول القريبه لك, في الشرق الاوسط سلك الانترنت يتصل باوروبا اول شيء, لذلك هي اسرع شيء موجود.
في هذه الحالة اخترت المانيا و فرنسا و النمسا

هذا التعديل يطبق على RPMfusion ايضا

استخدام Aria2 بدلا عن CURL (اختياري)

بشكل افتراضي DNF يستخدم curl للتحميل لكن aria2 يقدم سرعة تحميل افضل بشكل عام.

هذه الخطوة اختياريه, وهي للاسف تؤثر على مظهر DNF, شخصيا لا ارى لها حاجة,
التعديلات السابقة على الاغلب سوف تعطيك سرعة الاتصال الكاملة.

هذه الطريقه تسرع التحميل على معظم الشبكات, لكن على شبكات الهواتف مثلا قد تجعلها ابطئ
لذلك جربها وفي حالة انه لم تكن السرعة افضل, اخر الشرح طريقة الغاء التغييرات.

نثبت المتطلبات:

sudo dnf install patch aria2 git

ثم نقوم بنسخ المستودع الي فيه التعديل لنقل DNF من curl الى aria2

git clone https://github.com/daemonspudguy/DNF-Faster

ندخل الملف

cd DNF-Faster

ونقوم بعمل الباتش

sudo patch -p0 -d/ -b < dnf-faster.patch

لالغاء التعديل

ادخل لملف DNF-Faster ونفذ هذا الامر

sudo patch -p0 -d/ -b -R < dnf-faster.patch
7 إعجابات

هل يمكن زياده المده

هل لازال يعمل لأن اخر مره جربته عدلت فيه نسخه البايثون من 3.6 إلى 3.7

هذه نسخه معدله
ليست النسخه الاصليه
الجديدة متوافقه مع بايثون 3.9

موضوع زياده الكاش لا اتوقع ممكن خاصه انه يوم واحد اكثر من كافي

إعجاب واحد (1)

ألا يوجد شخص يراجع المحتوى إملائيًّا؟
الأخطاء كثيرة وتحتاج مراجعة وتعديل.

لا، كل شخص يكتب المقدور عليه.
لديك اقتراحات ؟ قدمها هنا والكاتب/المشرفين يضيفوها للموضوع.

التعديلات كثيرة، حبذا لو نستطيع التعديل على المقال لتصحيحه مثل ويكيبيديا.

هذا صعب ادارته واشرافة.
سوف ابحث في تصحيح الموضوع، كتبته منذ فتره طويلة.

قمت بتحديث الموضوع.
غيرت الترتيب واضفت دعم المتغيرات و قائمة عناوين, ايضا قمت باستبدال بعض المصطلحات الانجليزية بكلمات عربية.

fastestmirror=true

قرأة مرة هذا التعليق ومستخدمين كثير متفقين معاه فلم أعد أعرف هل الأفضل ترك الوضع الإفتراضي false أم تغييرها إلى true
Fastestmirror=true is a common mistake, because fastest=/=most reliable, and that’s why its false by default. The next sentence in the doc even says that without it order will be generated by the server to provide the best download speeds

الصراحة من تحربتي يحسن السرعة.