نظرة عامة
تُمثّل أداة dpkg المحرك الجذري ومنظومة المستوى المنخفض (low-level tool) المسؤولة عن معالجة حزم .deb مباشرةً في بيئات دبيان وأوبونتو وما بُني عليهما. يستعرض هذا الدليل التطبيقي الكيفية الهندسية لإدارة البرمجيات يدويًا: بدءًا من استعراض محتويات الحزم قبل التثبيت، وتتبع مسارات الملفات التابعة لها، وصولًا إلى التمييز بين الحذف العادي والتطهير الشامل (purge)، ومعالجة اختلالات الاعتماديات المفقودة بخطوات واضحة ومجربة.
1. تجهيز بيئة العمل واستكشاف الحزم المثبتة
قبل الشروع في تنفيذ عمليات التثبيت اليدوي، ننشئ مساحة عمل مؤقتة وننتقل إليها لعزل بيئة الاختبار عن ملفات النظام الأساسية عبر تشغيل:
mkdir -p /tmp/dpkg-demo && cd /tmp/dpkg-demo

للحصول على نموذج تطبيقي لحزمة دبيان (سنستخدم هنا حزمة sl) دون تثبيتها الفوري على نظام التشغيل، نكتفي بتنزيل الأرشيف الثنائي فقط عبر المستودعات الرسمية:
apt-get update -qq && apt-get download -y sl

يتيح الخيار dpkg -l جردًا شاملاً لكافة الحزم المسجلة في قاعدة بيانات النظام. يُشير الرمز المصدري ii في مستهل كل سطر إلى أن الحزمة مثبتة وتعمل بنجاح تام، كما يمكن فلترة المخرجات بالاستعانة بأدوات التصفية المعتادة مثل grep وhead:
⚙️ [أهم المعاملات والخيارات التشغيلية]
-i (أو --install): يثبّت ملف الحزمة المستهدفة بصيغة .deb مباشرة على النظام.-r (أو --remove): يستأصل ملفات التطبيق التنفيذية مع الإبقاء على ملفات الإعداد والتهيئة.-P (أو --purge): يقتلع الحزمة بالكامل مع محو كافة ملفات التهيئة المرتبطة بها.-l (أو --list): يعرض جدولًا بالحزم المسجلة في النظام وحالتها الراهنة.-s (أو --status): يستخرج سجلاً تفصيلياً لحالة حزمة معينة وشبكة اعتمادياتها.-L (أو --listfiles): يستعرض شجرة المسارات والملفات التي نشرتها حزمة معينة في النظام.-c (أو --contents): يفحص محتويات ملف .deb غير المثبت ويعرض بنيته الداخلية مسبقًا.-I (أو --info): يستخرج البيانات الوصفية (Metadata) والتحكمية الخاصة بملف .deb المغلق.--unpack : يفكك محتويات الأرشيف فقط دون تفعيل خطوة التهيئة والتكوين.--configure : يكمل إعداد وتهيئة الحزم المفككة والمعلقة التي لم تكتمل سابقًا.

عند الرغبة في تدقيق السجل البرمجي لحزمة مثبتة مثل bash، يوفر الخيار dpkg -s قراءة دقيقة لبيانات الإصدار والاعتماديات، حيث يؤكد السطر Status: install ok installed تكامل تثبيتها داخل النظام:

2. معاينة حزم deb المستقلة وتثبيتها عبر dpkg -i
لضمان سلامة التنفيذ، نتأكد من التواجد داخل الدليل التجريبي الذي يحوي الحزمة المحملة:
cd /tmp/dpkg-demo

يُمكن فحص بطاقة التعريف والبيانات الوصفية لحزمة غير مثبتة عبر الأمر dpkg -I، مما يمكّن مدير النظام من مراجعة حقول Package وVersion بالإضافة إلى شروط التبعيات Depends قبل مباشرة التثبيت:

للتحقق من سلامة البنية التحتية ومعرفة المواقع التي ستستقر فيها الملفات داخل شجرة أدلة لينكس، نستعرض المحتوى الداخلي للحزمة غير المثبتة باستخدام الخيار dpkg -c:

عند التأكد من ملائمة الحزمة، نباشر عملية التثبيت اليدوي المباشر بواسطة dpkg -i. تتولى الأداة فك الضغط (Unpacking) ثم الانتقال لمرحلة التهيئة (Setting up) ونشر الملفات التنفيذية:
dpkg -i sl_*.deb

للتأكد عمليًا من جاهزية البرنامج بعد التثبيت وتشغيل الملف التنفيذي الجديد، ننفذ المسار التالي:
/usr/games/sl -a || true

3. التدقيق الجنائي وتتبع ملكية الملفات في النظام
لمعرفة النطاق الجغرافي الذي تشغله حزمة ما داخل النظام، يزودنا الأمر dpkg -L بقائمة حصرية لكافة الأدلة والملفات والوثائق ورخص الاستخدام المنشورة على القرص:
dpkg -L sl

في حال واجهت ملفًا تنفيذيًا غامضًا وأردت معرفة الحزمة التي قامت بتوليده وتملكه، يُتيح الخيار dpkg -S البحث العكسي الدقيق بالاعتماد على المسار المطلق للملف:
dpkg -S /usr/games/sl

تجدر الإشارة إلى أن البحث عن الروابط الرمزية (Symlinks) دون مسارها الفعلي قد يعيد نتائج فارغة؛ ففي توزيعات أوبونتو الحديثة المعتمدة على معيار دمج المسارات (UsrMerge)، يُعد المسار /bin مجرد اختصار للمسار الحقيقي /usr/bin. بناءً على ذلك، يتطلب الاستعلام عن مالك أمر مثل ls تحديد المسار الرسمي الكامل /usr/bin/ls لتعود النتيجة بنجاح مشيرةً إلى الحزمة الأساسية coreutils:

4. إزالة البرامج (الحذف العادي مقابل التطهير التام) وترميم التبعيات
عند الرغبة في التخلص من البرنامج مع المحافظة على ملفات التهيئة لاستخدام مستقبلي محتمل، نلجأ إلى خيار الحذف الجزئي عبر المعامل -r:
dpkg -r sl

أما إذا كان الهدف هو الاقتلاع الجذري ومحو كافة الإعدادات والملفات المتبقية لإعادة النظام إلى حالته البكر، فإن خيار التطهير الكامل -P هو الحل المناسب:
dpkg -P sl

نظراً لأن dpkg أداة منخفضة المستوى ولا تجلب الاعتماديات الناقصة تلقائيًا من المستودعات، قد تتسبب بعض التثبيتات اليدوية في كسر تبعيات النظام. لمعالجة هذا الخلل وترميم الحزم المعلقة تلقائيًا، نستعين بالأمر:
apt-get install -f -y

ختاماً، ننظف البيئة التجريبية ونحذف مجلد الاختبار المؤقت وملف الحزمة لتوفير المساحة والحفاظ على ترتيب النظام:
rm -rf /tmp/dpkg-demo

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