بدأ تطوير مدير الحزم DNF 5 واستبدال PackageKit

دانيال ماخ من ريد هات сообщил حول بداية تطوير مدير حزم DNF 5، حيث سيتم نقل منطق DNF المطبق في Python إلى مكتبة libdnf المكتوبة بلغة C++. من المقرر أن يبدأ اختبار DNF 5 في يونيو أثناء تطوير Fedora 33، وبعد ذلك ستتم إضافته إلى مستودع Rawhide في أكتوبر 2020، وسيحل محل DNF 2021 في فبراير 4. وستستمر صيانة فرع DNF 4 كما هو. المستخدمة في ريد هات إنتربرايز لينكس 8.

تجدر الإشارة إلى أن المشروع قد وصل إلى حالة يكاد يكون من المستحيل فيها الاستمرار في تطوير التعليمات البرمجية دون كسر التوافق على مستوى API/ABI. ويرجع ذلك بشكل رئيسي إلى خسارة أهمية PackageKit واستحالة تطوير libdnf دون تغيير واجهة برمجة التطبيقات "libhif". في الوقت نفسه، على الرغم من نية تغيير واجهة برمجة التطبيقات (API)، يُقال إن الحفاظ على التوافق مع الإصدارات السابقة على مستوى واجهة سطر الأوامر وواجهة برمجة التطبيقات (API) هو الأولوية الرئيسية.

سيتم الاحتفاظ بدعم Python API في DNF، ولكن سيتم نقل منطق الأعمال المكتوب بلغة Python إلى مكتبة libdnf (C++)، والتي ستضمن التشغيل المطابق لمدير الحزم في التوزيع. سيتمحور التطوير حول واجهة برمجة تطبيقات C++، وسيتم إنشاء واجهة برمجة تطبيقات Python تلقائيًا في شكل غلاف يعتمد عليها.
الارتباطات لـ Go وPerl و
روبي. بعد استقرار واجهة برمجة تطبيقات C++، سيتم إعداد واجهة برمجة تطبيقات C على أساسها، والتي سيتم نقل rpm-ostree إليها. هوكي ستتم إزالة Python API واستبدالها بـ libdnf واجهة برمجة تطبيقات بايثون.

سيتم الاحتفاظ بالوظيفة الأساسية لـ DNF. نظرًا لمجموعة الاختبارات الكبيرة (حوالي 1400 اختبار)، فمن المتوقع ألا تؤثر إعادة صياغة واجهة برمجة التطبيقات (API) على واجهة سطر الأوامر للمستخدمين النهائيين. قد يتغير تحليل الوسيطة ومخرجاتها قليلاً، ولكن سيتم توثيق هذه التغييرات جيدًا. في نسخة مجردة com.microdnf، المستخدمة في الحاويات، من المخطط تنفيذ مجموعة فرعية من إمكانيات DNF؛ ولا يؤخذ في الاعتبار تحقيق التكافؤ الكامل في الوظيفة.

بدلا من PackageKit سيتم إنشاء خدمة DBus جديدة توفر واجهة لإدارة الحزم والتحديثات للتطبيقات الرسومية. تم التخطيط لتطوير هذه الخدمة من الصفر، لذلك قد يتطلب إنشائها الكثير من الوقت. لم يتم تطوير PackageKit مؤخرًا، وهو في وضع الصيانة منذ عام 2014 بسبب فقدان أهميته. مع تقدم أنظمة Snaps وFlatpak، فقدت التوزيعات الاهتمام بـ PackageKit، على سبيل المثال، لم تعد متوفرة في الإصدارات فيدورا فضي أزرق. يتم توفير طبقة التجريد لإدارة الحزم بشكل كبير من خلال مراكز التحكم في تطبيقات GNOME وKDE الأصلية، والتي تسمح بتثبيت حزم flatpak على مستوى المستخدم الفردي. واجهة برمجة التطبيقات (API) للنظام الموحد للحصول على قائمة بالحزم المثبتة ليست مفيدة كما كانت من قبل.

المصدر: opennet.ru

إضافة تعليق