Product SiteDocumentation Site

فصل 5. نظام الحزم: الأدوات والمبادئ الأساسية

5.1. بنية الحزمة الثنائية
5.2. المعلومات الفوقية للحزمة
5.2.1. وصف: الملف control
5.2.2. سكربتات الإعداد
5.2.3. شفرات التحقق، لائحة ملفات الضبط
5.3. بنية الحزمة المصدرية
5.3.1. الصيغة
5.3.2. الاستخدام في دبيان
5.4. معالجة الحزم باستخدام dpkg
5.4.1. تثبيت الحزم
5.4.2. إزالة حزمة
5.4.3. الاستعلام في قاعدة بيانات dpkg وفحص ملفات ‎.deb
5.4.4. سجلات dpkg
5.4.5. دعم تعدد المعماريات
5.5. التعايش مع نظم التحزيم الأخرى
بما أنك مدير دبيان، فسوف تتعامل مع حزم .deb بشكل متكرر، التي تحوي عناصر وظيفية مترابطة (تطبيقات، وثائق... الخ)، تُسهِّل هذه الحزم تثبيتها وصيانتها. فمن الجيد إذن أن تعرف مما تتألف هذه الحزم وكيف تستخدمها.
يصف هذا الفصل بنية ومحتويات الحزم ”الثنائية“ و ”المصدرية“. الأولى هي ملفات .deb، يمكن الاستفادة منها مباشرة باستخدام dpkg، في حين تحوي الأخيرة شفرة البرنامج المصدرية، بالإضافة إلى تعليمات بناء حزم ثنائية.

5.1. بنية الحزمة الثنائية

صيغة حزم دبيان مصممة بحيث يمكن استخراج محتوياتها على أي نظام يونكس يملك الأوامر الكلاسيكية ar، و tar، و gzip (وأحياناً xz أو bzip2). هذه الخاصية التافهة ظاهريًا حاسمة بالنسبة للمحمولية والإنقاذ في حالات الكوارث.
تخيل، مثلا، أنك حذفت برنامج dpkg عن طريق الخطأ، وأنك لا تستطيع بالتالي تثبيت حزم دبيان بعد ذلك. ولأن dpkg هو حزمة دبيان بحد ذاته، يبدو أن نظامك قد انتهى أمره... لحسن الحظ، أنت تعرف صيغة الحزمة ويمكنك بالتالي تنزيل ملف .deb الخاص بحزمة dpkg ثم تثبته يدوياً (انظر الملاحظة الجانبية أدوات dpkg ،APT و ar). إذا اختفى واحد أو أكثر من البرامج ar ،tar أو gzip/xz/bzip2 بسبب سوء الحظ، فكل ما تحتاج له هو نسخ البرنامج المفقود من نظام آخر (بما أن كل واحد من هذه البرامج يعمل بطريقة مستقلة تماماً، وليس له اعتماديات، فالنسخ البسيط سيكفي). حتى لو عاندتك الظروف التي يعاني منها نظامك أكثر من ذلك، وحتى لو لم تعمل هذه أيضاً (ربما اختفت بعض أهم المكتبات من النظام؟)، عليك تجربة النسخة الستاتيكية من busybox (المتوفر في الحزمة busybox-static)، التي تعمل بشكل مستقل أكثر، وتوفر أوامر فرعية مثل busybox ar، وbusybox tar، وbusybox gunzip.
لنلقِ نظرة على محتويات ملف .deb:
$ ar t dpkg_1.17.23_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar x dpkg_1.17.23_amd64.deb
$ ls
control.tar.gz  data.tar.gz  debian-binary  dpkg_1.17.23_amd64.deb
$ tar tzf data.tar.gz | head -n 15
./
./var/
./var/lib/
./var/lib/dpkg/
./var/lib/dpkg/parts/
./var/lib/dpkg/info/
./var/lib/dpkg/alternatives/
./var/lib/dpkg/updates/
./etc/
./etc/logrotate.d/
./etc/logrotate.d/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg.d/
./etc/dpkg/dpkg.cfg
./etc/alternatives/
$ tar tzf control.tar.gz
./
./conffiles
./postinst
./md5sums
./prerm
./preinst
./control
./postrm
$ cat debian-binary
2.0
كما ترى، يتألف أرشيف ar الذي يضم حزمة دبيان من ثلاثة ملفات:
  • debian-binary. هذا ملف نصي يشير ببساطة إلى نسخة ملف .deb المستخدم (في 2015: الإصدارة 2.0).
  • control.tar.gz. ملف الأرشيف هذا يحوي جميع المعلومات الفوقية المتاحة، مثل اسم الحزمة وإصدارها. تسمح بعض هذه المعلومات الفوقية لأدوات إدارة الحزم بأن تقرر إذا كان يمكن تثبيت الحزمة أو إزالتها، حسب قائمة الحزم المتوفرة مسبقاً على الجهاز مثلاً.
  • data.tar.gz. يحوي هذا الأرشيف على جميع الملفات التي يجب استخراجها من الحزمة؛ هذا هو المكان حيث تخزن الملفات التنفيذية، الوثائق، الخ. قد تستخدم بعض الحزم صيغ ضغط مختلفة، حيث يتغير اسم الملف في تلك الحالة (data.tar.bz2 بالنسبة لصيغة bzip2،‏ data.tar.xz بالنسبة لصيغة XZ).