ديسمبر 21، 2010

تحديث دبيان و أبونتو بحزم الفرق بين الإصدارات

أثناء تحديثي اليوم لتوزيعة دبيان بنواة فري. بي. إس. دي (Debian GNU/kFreeBSD) لاحظت أن مدير الحزم الرسومي (Synaptic) تباطأ كثيرا في ترقية قاعدة بيانات الحزم مع ارتفاع ملحوظ في حمل المعالج و نشاط غير مألوف للقرص الصلب. بعد فحص سريع لما يجري لمحت تحميل ملفات صغيرة و بامتداد pdiff. فقلت هل أصبحت دبيان هي الأخرى تُفعّل بشكل تلقائي خاصية تحميل الفارق فقط بين إصدارات الحزم القديمة و الحديثة تماما كما تفعل فيدورا و باردوس

ليس صحيح تماما، فبعد بحث بسيط إتضح أن هذه الخاصية مدعومة على فرعي الإصدارات الإختبارية و الغير المستقرة منذ مدة بعيدة  (الإصدار 4 المسمى بـ etch) دون أن ألمحها! و دورها هو تحميل الفارق فقط بين قاعدة بيانات الحزم القديمة و الحديثة.

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

حسب الموضوع المشار إليه أعلاه أو من خلال صفحات التوثيق (man pages) لأداة apt-get يمكن تفعيل أو تعطيل هذه الخاصية يدويا بتمرير المعيار -o Acquire::Pdiffs=true أو -o Acquire::Pdiffs=false مثال:

apt-get update -o Acquire::Pdiffs=false

يمكن أيضا إضافتها إلى ملف إعدادات الأداة apt-get على /etc/apt/apt.conf مثال:

Acquire::PDiffs "false";


ماذا عن خاصية تحميل الفارق بين الحزم على دبيان، هل من طريقة؟

نعم، هناك طريقة باستخدام أداة debdelta-upgrade المتوفرة داخل حزمة debdelta.

لتثبيت تلك الحزمة:
apt-get update  ;  apt-get install  debdelta  python-apt  xdelta  xdelta3  xz-utils  xz-lzma

و بعدها لتحديث/ترقية كافة الحزم بتحميل فقط الفرق بين إصدارها الحالي و السابق يكفي تنفيذ:

apt-get update  ;  debdelta-upgrade  ;  apt-get -V upgrade

بدلا من عملية الترقية المعتادة:
apt-get update  ;  apt-get -V upgrade


معلومات إضافية بخصوص معيار Acquire يمكن العثور عليه على صفحة التوثيق الخاصة بـ apt.conf(5) مثل تحديد سرعة تحميل الحزم بـ 64 كيلوبيت مثلا:

apt-get -o Acquire::http::Dl-Limit=64 upgrade


تحديث 1 و تنبيه:
نفس العمليات تنطبق على كل التوزيعات المنحدرة عن دبيان كـ أبونتو و غيرها على دبيان بالدرجة الأولى.

مستخدمي أبونتو يحتاجون إلى تعديل الملف /etc/debdelta/sources.conf و تغيير 'Origin=' و 'Label=' لتصبح Ubuntu بدلا من Debian ثم تعديل 'delta_uri=' لتصبح http://ubuntu-in.info/ubuntu/
مثال:
[main debian archive]
Origin=Ubuntu
Label=Ubuntu
delta_uri=http://ubuntu-in.info/ubuntu/

[stable security debian archive]
Origin=Ubuntu
Label=Ubuntu
delta_uri=http://ubuntu-in.info/ubuntu/


المصدر: 1 و 2 و 3.

و رغم ذلك يجب توخي الحدر من أداة debdelta-upgrade حتى نتأكد من عملها بالشكل الصحيح. سأجربها لمدة مطولة و سأبلغمك بالجديد إن كان ضروري.

تحديث 2 (09-01-2011):
يبدو أن لم يعد هناك أي خادم رسمي أو موثوق به لتوفير حزم الفارق بالنسبة لمختلف إصدارات توزيعة أبونتو.

ليست هناك تعليقات:

إرسال تعليق