DNF5-CACHING(7)

الاسم
dnf5-caching - التخزين في الخبيئة

الوصف

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

موقع البيانات المخزنة في الخبيئة

يوضح هيكل الدليل التالي دليل خبيئة نموذجي لـ DNF5:

            /var/cache/libdnf5/
            ├── fedora-*
            │   ├── metalink.xml
            │   ├── repodata
            │   │   ├── *-comps-Everything.x86_64.xml
            │   │   ├── *-primary.xml.zck
            │   │   └── repomd.xml
            │   └── solv
            │       ├── fedora-group.solvx
            │       └── fedora.solv
            ├── temporary_files.toml
            └── updates-*
                ├── metalink.xml
                ├── packages
                │   └── bash-5.2.21-1.fc38.x86_64.rpm
                ├── repodata
                │   ├── *-primary.xml.zck
                │   ├── *-updateinfo.xml.zck
                │   ├── *-comps-Everything.x86_64.xml.gz
                │   └── repomd.xml
                └── solv
                    ├── updates-group.solvx
                    ├── updates-updateinfo.solvx
                    └── updates.solv

دليل خبيئة الجذر المبدئي هو /var/cache/libdnf5، ولكن عند تشغيل DNF5 كمستخدم آخر، يستخدم الخبيئة من ~/.cache/libdnf5 بنفس الهيكل. يمكن إعادة تعريف دليل خبيئة الجذر باستخدام خيار التهيئة system_cachedir، ودليل خبيئة المستخدم باستخدام الخيار cachedir.

داخل دليل الخبيئة، توجد أدلة فرعية مقابلة لكل مستودع مهيأ، مثل fedora-* و updates-*. تحتوي هذه على ملفات بيانات وصفية في دليل repodata وملفات مخزنة في الخبيئة أنشأها الحلال في دليل solv. يمكن تمكين أو تعطيل ملفات الحلال، المستخدمة لتحسين الأداء في حل تبعيات الحزم أو تشغيل الاستعلامات، على مستوى المستودع من خلال خيار التهيئة build_cache. قد يخزن دليل packages الحزم المنزلة من مستودع، ويوفر ملف metalink أو mirrorlist معلومات عن المواقع البعيدة لبيانات المستودع.

بالإضافة إلى ذلك، يحتوي دليل خبيئة الجذر على ملف temporary_files.toml متعلق بالحزم المخزنة مؤقتًا في النظام.

أنواع البيانات الوصفية

توجد عدة أنواع من البيانات الوصفية تُنزل من المواقع البعيدة وتُعالج في DNF5.

بعض البيانات الوصفية إلزامية وتُراعى دائمًا. ملف البيانات الوصفية لـ رئيس المستودع، repomd.xml، يحتوي على معلومات عن ملفات نوع بيانات وصفية محددة متعلقة بمستودع، مثل المجاميع الاختبارية وأحجام الملفات ومواقعها في التسلسل الهرمي للبيانات الوصفية. ملف إلزامي آخر هو ملف البيانات الوصفية primary، الذي يوفر معلومات مفصلة عن الحزم المتاحة، بما في ذلك أسماء الحزم والإصدارات والتبعيات، إلخ. إذا جُمع DNF5 مع دعم النمطية، تُنزل وتُعالج بيانات وصفية modules أيضًا.

أنواع البيانات الوصفية الأخرى اختيارية ويمكن تحميلها إلى DNF5 بالطرق التالية:

    •   طلب صريح من المستخدم بإضافة النوع المطلوب إلى خيار التهيئة optional_metadata_types

    •   آليًا أثناء وقت التشغيل، اعتمادًا على أمر سطر الأوامر المستخدم

    •   بالنسبة لبيانات filelists الوصفية، عندما يمرر المستخدم أي وسيطة لمسار ملف

هذه قائمة أنواع البيانات الوصفية الاختيارية المدعومة:

    •   comps: بيانات وصفية تحتوي على مجموعات الحزم وأوصاف البيئة

    •   filelists: معلومات عن جميع الملفات التي توفرها الحزم

    •   updateinfo: معلومات التحديثات والتنبيهات المتعلقة بالأمان

    •   presto: معلومات متعلقة بـ delta RPMs

    •   other: بيانات وصفية إضافية، مثل سجلات التغييرات

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

تخزين الحزم في الخبيئة

مبدئيًا، لا يخزن DNF5 بيانات الحزم المنزلة في الخبيئة، حيث يُضبط الخيار keepcache على False. مع هذا الإعداد، في كل مرة ينزل DNF5 حزمة من الموقع البعيد، يتتبعها داخل temporary_files.toml في دليل خبيئة المستودع. بعد تشغيل المعاملة الناجحة التالية، تُزال جميع الملفات بناءً على هذه القائمة. تحدث هذه العملية فقط عندما تحتوي المعاملة على أي إجراء وارد؛ وإلا، تُحتفظ بالحزم، مع مراعاة حالات الاستخدام المحتملة.

عند ضبط خيار keepcache على True، لا تُتتبّع الملفات المنزلة، ويمكن إزالتها لاحقًا، إما يدويًا أو بتنفيذ الأمر clean، على سبيل المثال، dnf5 clean packages.

تُحتفظ بالحزم دائمًا عند تنزيلها باستخدام الأمر download.

مشاركة خبيئة الجذر بين المستخدمين

عادةً، يُشغّل DNF5 بصلاحيات المستخدم الفائق لإجراء تغييرات في النظام. ومع ذلك، توجد سيناريوهات يكون فيها تنفيذ الاستعلامات دون صلاحيات مرتفعة كافيًا. في هذه الحالات، قد نحتاج إلى تنزيل بيانات تعريف المستودع بالكامل لحساب المستخدم من البعيد، حتى لو وُجدت بيانات في خبيئة الجذر.

في DNF5، عند التحقق من بيانات تعريف مستودع فارغة أو منتهية الصلاحية أو غير صالحة أثناء التشغيل تحت حساب غير جذري، يُفحص موقع الجذر أولاً. إذا وُجدت بيانات تعريف هناك، تُنسخ إلى موقع خبيئة المستخدم. لاحظ أن استنساخ بيانات التعريف هذا يُحسّن عند وجود وظيفة النسخ عند الكتابة على نظام الملفات، مثل btrfs.

خيار CACHEONLY مقابل المعامل

لتوجيه DNF5 للعمل حصريًا بالبيانات الموجودة في الخبيئة، متجنبًا التنزيلات من المواقع البعيدة، تتوفر أداتان. أولاً، باستخدام خيار التهيئة cacheonly، يمكن تحديد إما metadata لاستخدام بيانات تعريف المستودع فقط من الخبيئة أو all لتضمين الخبيئة بأكملها، مانعًا أي تنزيلات للحزم. بدلاً من ذلك، عند استخدام المعامل --cacheonly، يُضبط خيار التهيئة آليًا على all، مما يُنتج عملية مدفوعة بالخبيئة بالكامل.

استخدام قيمة metadata لتهيئة cacheonly يمكن أن يكون مفيدًا عندما تكون المستودعات الاختيارية غير متاحة مؤقتًا أو عندما نعرف أنها غير ضرورية لحالة الاستخدام الحالية. كما أنه مفيد عندما لا تكون بيانات التعريف المخبأة هي الأحدث أو انتهت صلاحيتها ولكنها لا تزال وظيفية.

حذف، إنشاء، تحديث

تُستخدم الأوامر التالية لحذف الخبيئة وإنشائها يدويًا:
        dnf5-clean(8)، أمر التنظيف <#clean-command-ref-label>
        dnf5-makecache(8)، أمر إنشاء الخبيئة <#makecache-command-ref-label>

لفرض تحديث بيانات التعريف قبل تنفيذ أمر، استخدم المعامل --refresh.

المؤلف
انظر AUTHORS.md في توزيعة مصدر dnf5.

حقوق النسخ
المساهمون في مشروع dnf5.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.