Black X

كيفية تعديل PackageKit ليعمل تحت Smart

Posted in GNOME, openSUSE, تطبيقات by Black X on يوليو 3, 2008

تحدثت في موضوع سابق عن تمكني اخيراً و بعد عدة محاولات, من ربط PackageKit مع مدير الحزم Smart, ليصبح تطبيق PackageKit المستخدم في تنصيب الحزم و تحديث النظام و كأنه واجهة استخدام لـ Smart.

هدف التطبيق PackageKit هو أن يكون أداة مبسطة لتثبيت الحزم و تحديث النظام بالتحديثات و الحزم الحديثة, بحيث يكون تطبيق موحد مرن يعمل تحت العديد من التوزيعات, لكن باستخدام مدراء حزم التوزيعات. مثلاً نجده في openSUSE يستخدم zypp, وفي Fedora يستخدم فيها yum, وفي Ubuntu ان لم يخب ظني تستخدم التطبيق بربطه مع apt, و هكذا مع بقية التوزيعات.

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

مثال توضيحي بسيط: في openSUSE, لو قمنا بكتابة الامر التالي في سطر الاوامر
gpk-backend-status
فسنجد ان نافذة جديدة قد ظهرت و تحمل معلومات الـ Backend المستخدم في PackageKit, في حالتنا هذه سنجد ان اسم الـ Backend هو Zypp, أي أن تطبيق PackageKit يعمل تحت مكتبة Zypp الخاصة بادارة التطبيقات في openSUSE, بالاضافة لذلك سيظهر لنا ما هي الخصائص المدعمة في هذا الـ Backend من بحث عن التطبيقات, و الفلترة و ما اليه.

حسناً, هنا اتوقع انني وضحت النقطة الخاصة بـ Backend, لاشرح الآن كيفية ربط Smart مع PackageKit. (بالمناسبة تعريب Backend هو خلفية, و لذا سأقوم بالاشارة لها على انها مدير الحزم الذي يعمل بالخلفية).

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

بالطبع قمت بالبحث كثيراً في الشبكة العنبكوتية عن كيفية ذلك, و للأسف لم اجد أي معلومات بكيفية ربط PackageKit بسمارت, لكن بعد عدة محاولات شخصية من قبلي و منها تثبيت PackageKit من المصدر مع تفعيل Smart بها, ما زلت لم افلح في تشغيل PackageKit ليعمل تحت سمارت. و في النهاية و بعد تلاعب بسيط و نقل ملفات يدوياً, استطعت اخيراً ربط PackageKit ليعمل تحت Smart, و سأشرح طريقة ذلك الآن.

قبل كل شيء, لسنا بحاجة الى الغاء تنصيب PackageKit او الواجهة الرسومية الخاصة به و التي تسمى gnome-packagekit من النظام.

في بداية الامر, فاننا نحتاج الى تعديل الملف PackageKit.conf لتعريفه باستخدام مدير الحزم Smart في الخلفية بدلاً من zypp.
عن طريق الامر التالي (بحاجة الى المستخدم الجذر)
su
gedit /etc/PackageKit/PackageKit.conf

و منها تعديل
DefaultBackend=zypp
ليصبح
DefaultBackend=smart
مع حفظ الملف.

الآن نحن بحاجة الى الملف المصدري الخاص بالتطبيق PackageKit, و لتنزيله من هذا الرابط, و ذلك لاحتواءه على ملفات الـ Backend والتي نحن في حاجة لها.

قبل ان نقوم بعملية الاعداد, الافضل التأكد من ان الحزم التالية مثبتة لديك
PolicyKit-gnome-devel
libsexy-devel

عن نفسي فانا اقوم بتثبيت حزم التطوير الخاصة بـ GNOME عن طريق ياست, حتى لا اكون بحاجة الى تثبيت الحزم التطويرية يدوياً بعد ذلك, لكني بالطبع احتجت الى تثبيت الحزم السابقة لامكانية اعداد PackageKit من المصدر.

بعد فك الضغط عن الملف المصدري الخاص بـ PackageKit, فاننا نقوم بعملية الاعداد التالية
./configure

بعد الانتهاء من عملية الاعداد, نقوم الآن بالولوج من نفس الملف المصدر الخاص بالتطبيق الى المسار التالي
~/PackageKit-0.2.2/backends/smart
نقوم بعملية صنع المكتبة لتنصيبها
make

بعد ذلك تأتي مرحلة التنصيب (بحاجة الى المستخدم الجذر)
su
make install

الآن الموضوع بحاجة الى بعض التركيز, سنجد ان مكتبات الـ Backend الخاصة بـ Smart قد تم نقلها الى المسار التالي
/usr/local/lib/packagekit-backend

و هو مسار خاطئ, و كان بالامكان في عملية الاعداد تحديد المسار الصحيح, لكن لم اتعمق بهذه النقطة, و سنقوم بنقلها يدوياً الى المسار الصحيح التالي
/usr/lib/packagekit-backend
سنجد فيها ايضاً مكتبة الـ Backend الخاص بـ Zypp كذلك, كل ما علينا هنا هو نقل الملفات الموجودة بالمسار السابق للمسار الجديد, و بالطبع العملية بحاجة الى المستخدم الجذر.

اخيراً نحن بحاجة الى الملفات المساعدة للـ Backend, و كما اتوقع من مسمياتها انها المسؤولة في اعطاء اوامر البحث, التحديث و غيرها من الاوامر, و ذلك من التطبيق PackageKit الى Smart في الخلفية.

و يتم ذلك بالولوج الى الملف المصدر للتطبيق PackageKit تحديدا الى المسار
~/PackageKit-0.2.2/backends/smart
سنجد بها مجلد باسم helpers, نقوم بتغيير الاسم الى smart, ثم نقله الى المسار (بحاجة ايضاً الى المستخدم الجذر)
/usr/share/PackageKit/helpers
وفي نهاية الامر نتأكد من أن العملية ناجحة بواسطة كتابة الامر
gpk-backend-status
و من المفترض ان تظهر لنا نافذه بهذا الشكل.

منها سنجد أن التطبيق المستخدم في الخلفية هو Smart, و منها ايضاً معرفة ما يدعمه هذا الـ Backend. اما اذا ظهر لديك ان النظام ما زال يستخدم Zypp فلا تقلق, قالموضوع بحاجة الى اعادة تشغيل التطبيق packagekitd و الذي يعمل في الخلفية, عن طريق الامر

killall packagekitd

ايضاً أذكر هنا انه بالامكان العودة الى استخدام Zypp مع التطبيق PackageKit عن طريق التعديل في الملف
/etc/PackageKit/PackageKit.conf
و تغيير الـ Backend المستخدم الى zypp بدلاً من smart.

و لمزيد من المعلومات حول PackageKit, بالامكان العودة الى صفحته الرسمية.

اخيراً, سبب تحويلي الى استخدام Smart بدلاً من Zypp, ليس لشيء, لكن لكوني معجب بمدير الحزم سمارت كثيراً لكونه يقوم بتنزيل الحزم على شكل دفعات و تثبيتها في نهاية التنزيل, عكس ما يقوم به Zypp بتنزيله للحزم على شكل فردي مع تثبيتها في نهاية تنزيل كل حزمة, ايضاً بسبب مشكلة Zypp في تحسسه للاتصال و التي تحدثت عنها سابقاً في دليل الاستخدام الغير رسمي الذي قمت بكتابته قبل فترة, لكني مازلت ارى ان Zypp يعد واعداً خصوصاً في ناحية ذكاءه في عملية التثبيت في موضوع تعارض الحزم, اذ ما زال Smart يعاني من عدم قدرته على تثبيت الحزم المتعارضة, اذ لا يقوم بحذف الحزم المثبتة و تثبيت الحديثة منها الا بشكل يدوي.

ختاماً, و بعد القيام بما سبق, سنجد ان التطبيق PackageKit أصبح يستعين بـ Smart في موضوع التحديثات و تثبيت الحزم, حتى تحديث النظام عن طريق الايقونة الخاصة بذلك و الموجودة بجانب الساعة ستكون مرتبطة بـ Smart, و هذا ما تمنيت عمله من اول استخدام لي للتطبيق Smart, تحديداً في SuSE 10.1. هذا و قد يمكن استخدام الخطوات السابقة مع توزيعات أخرى كـ Fedora, مع تعديل المسارات السابقة بما يناسبها.

أعتذر عن أي خطأ مطبعي أو معلومة غير صحيحة في الموضوع, لأنني حاولت بهذا الموضوع أن اشرح الخطوات أكثر من شرحي عن التطبيق نفسه.

Advertisements

التعليقات على كيفية تعديل PackageKit ليعمل تحت Smart مغلقة

%d مدونون معجبون بهذه: