كتيبات سطر الأوامر

Man » دليل dpkg عبر الإنترنت - وثائق تفصيلية عبر الإنترنت لصفحة دليل dpkg

🌍
dpkg - مدير الحزم لنظام Debian

ملخص

dpkg [خيار...] الأمر

تحذير

يهدف هذا الدليل إلى المستخدمين الذين يرغبون في فهم خيارات سطر الأوامر وحالات الحزم الخاصة بـ dpkg بمزيد من التفصيل مما هو متوفر في dpkg --help.

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

الوصف

dpkg هي أداة ذات مستوى متوسط لتثبيت وبناء وإزالة وإدارة حزم Debian. الواجهة الأمامية الرئيسية والأكثر سهولة في الاستخدام لـ dpkg كواجهة سطر أوامر (CLI) هي [apt]({filename}../../apt)(8) وكواجهة مستخدم طرفية (TUI) هي aptitude(8). يتم التحكم في dpkg نفسه بالكامل عبر معلمات سطر الأوامر، والتي تتكون من أمر واحد بالضبط وصفر أو أكثر من الخيارات. تحدد معلمة الأمر ما الذي يجب أن يفعله dpkg والخيارات تتحكم في سلوك الأمر بطريقة ما.

يمكن أيضًا استخدام dpkg كواجهة أمامية لـ dpkg-deb(1) و dpkg-query(1). يمكن العثور على قائمة الأوامر المدعومة لاحقًا في قسم الأوامر. إذا تم مواجهة أي من هذه الأوامر، يقوم dpkg ببساطة بتشغيل dpkg-deb أو dpkg-query بالمعلمات المعطاة إليه، ولكن لا يتم تمرير أي خيارات محددة إليها حاليًا. لاستخدام أي من هذه الخيارات، يجب استدعاء الواجهات الخلفية مباشرة.

معلومات حول الحزم

يحافظ dpkg على بعض المعلومات المفيدة حول الحزم المتاحة. يتم تقسيم المعلومات إلى ثلاثة فئات: الحالات، وحالات التحديد، والعلامات. من المفترض تغيير هذه القيم بشكل أساسي باستخدام dselect.

حالات الحزم

غير مثبت

الحزمة غير مثبتة على نظامك.

ملفات التكوين

توجد فقط ملفات التكوين أو برنامج postrm والبيانات التي يحتاجها لإزالة الحزمة على النظام.

نصف مثبت

تم بدء تثبيت الحزمة، ولكن لم يتم إكماله لسبب ما.

مفكك

تم فك ضغط الحزمة، ولكن لم يتم تكوينها.

نصف مُكوَّن

تم فك ضغط الحزمة وبدء التكوين، ولكن لم يتم إكماله بعد لسبب ما.

في انتظار معالجة المشغلات

تنتظر الحزمة معالجة المشغلات بواسطة حزمة أخرى.

المشغلات قيد الانتظار

تم تشغيل الحزمة.

مثبت

تم فك ضغط الحزمة وتكوينها بشكل صحيح.

حالات تحديد الحزم

تثبيت

يتم تحديد الحزمة للتثبيت.

احتجاز
تُحتفظ بالحزمة التي تم وضع علامة عليها للاحتجاز على نفس الإصدار، أي لن يتم إجراء أي عمليات تثبيت أو ترقية أو إزالة تلقائية عليها، إلا إذا تم طلب هذه الإجراءات بشكل صريح، أو سُمح بإجرائها تلقائيًا باستخدام الخيار --force-hold.

إلغاء التثبيت

يتم تحديد الحزمة لإلغاء تثبيتها (أي نريد إزالة جميع الملفات، باستثناء ملفات التهيئة).

التنظيف الكامل

يتم تحديد الحزمة لتنظيفها بالكامل (أي نريد إزالة كل شيء من أدلة النظام، بما في ذلك ملفات التهيئة).

غير معروف

حالة تحديد الحزمة غير معروفة. الحزمة الموجودة أيضًا في حالة غير مثبتة، ومع وجود علامة "ok"، سيتم تجاهلها في عملية التخزين التالية لقاعدة البيانات.

علامات الحزمة

ok

الحزمة التي تم وضع علامة "ok" عليها في حالة معروفة، ولكن قد تحتاج إلى معالجة إضافية.

reinstreq

الحزمة التي تم وضع علامة "reinstreq" عليها معطلة وتتطلب إعادة تثبيت. لا يمكن إزالة هذه الحزم، إلا إذا تم إجبار ذلك باستخدام الخيار --force-remove-reinstreq.

الأوامر

-i، --install اسم_ملف_الحزمة...

تثبيت الحزمة. إذا تم تحديد الخيار --recursive أو -R، فيجب أن يشير اسم_ملف_الحزمة إلى دليل بدلاً من ذلك.

تتكون عملية التثبيت من الخطوات التالية:

     استخراج ملفات التحكم الخاصة بالحزمة الجديدة.

     إذا تم تثبيت إصدار آخر من نفس الحزمة قبل التثبيت الجديد، قم بتنفيذ البرنامج النصي `prerm` الخاص بالحزمة القديمة.

     تشغيل البرنامج النصي `preinst`، إذا تم توفيره بواسطة الحزمة.

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

     إذا تم تثبيت إصدار آخر من نفس الحزمة قبل التثبيت الجديد، قم بتنفيذ البرنامج النصي `postrm` الخاص بالحزمة القديمة. لاحظ أنه يتم تنفيذ هذا البرنامج النصي بعد البرنامج النصي `preinst` الخاص بالحزمة الجديدة، لأن الملفات الجديدة تتم كتابتها في نفس الوقت الذي تتم فيه إزالة الملفات القديمة.

     تهيئة الحزمة. راجع `--configure` للحصول على معلومات مفصلة حول كيفية القيام بذلك.

--unpack اسم_ملف_الحزمة...

فك ضغط الحزمة، ولكن لا تقم بتهيئتها. إذا تم تحديد الخيار --recursive أو -R، فيجب أن يشير اسم_ملف_الحزمة إلى دليل بدلاً من ذلك.

سيتم معالجة المشغلات الخاصة بـ "Pre-Depends" ما لم يتم تحديد الخيار --no-triggers.

--configure اسم_الحزمة...|-a|--pending

تهيئة حزمة تم فك ضغطها ولكن لم يتم تهيئتها بعد. إذا تم إعطاء -a أو --pending بدلاً من اسم_الحزمة، فسيتم تهيئة جميع الحزم التي تم فك ضغطها ولكن لم يتم تهيئتها.

لإعادة تهيئة حزمة تم تهيئتها بالفعل، حاول استخدام الأمر dpkg-reconfigure(8) بدلاً من ذلك (وهو جزء من مشروع debconf).

تتكون عملية التهيئة من الخطوات التالية:

     فك ضغط ملفات التهيئة، وفي الوقت نفسه، قم بعمل نسخة احتياطية من ملفات التهيئة القديمة، بحيث يمكن استعادتها إذا حدث خطأ ما.

     تشغيل البرنامج النصي `postinst`، إذا تم توفيره بواسطة الحزمة.

سيتم معالجة المشغلات ما لم يتم تحديد الخيار --no-triggers.

--triggers-only اسم_الحزمة...|-a|--pending

يعالج المشغلات فقط (من الإصدار 1.14.17 من dpkg). سيتم معالجة جميع المشغلات المعلقة. إذا تم توفير أسماء الحزم، فسيتم معالجة مشغلات هذه الحزم فقط، مرة واحدة بالضبط عند الضرورة. قد يؤدي استخدام هذا الخيار إلى ترك الحزم في حالات "triggers-awaited" و "triggers-pending" غير الصحيحة. يمكن إصلاح ذلك لاحقًا عن طريق تشغيل: dpkg --configure --pending.


-r، --remove package...|-a|--pending

إزالة حزمة مُثبَّتة. يقوم هذا الأمر بإزالة كل شيء باستثناء ملفات التهيئة والبيانات الأخرى التي يتم تنظيفها بواسطة البرنامج النصي postrm، مما قد يمنع الحاجة إلى إعادة تهيئة الحزمة إذا تم إعادة تثبيتها لاحقًا (ملفات التهيئة هي ملفات التهيئة المدرجة في ملف التحكم DEBIAN/conffiles). إذا لم يكن هناك ملف تحكم DEBIAN/conffiles أو برنامج نصي DEBIAN/postrm، فإن هذا الأمر يعادل استدعاء --purge. إذا تم تقديم -a أو --pending بدلاً من اسم الحزمة، فسيتم إزالة جميع الحزم التي تم فكها ولكن تم وضع علامة عليها لتتم إزالتها في الملف /var/lib/dpkg/status.

تتكون إزالة الحزمة من الخطوات التالية:

     تشغيل البرنامج النصي `prerm`.

     إزالة الملفات المثبتة.

     تشغيل البرنامج النصي `postrm`.

سيتم معالجة المشغلات إلا إذا تم تحديد --no-triggers.

-P، --purge package...|-a|--pending

إزالة أو مسح حزمة مُثبَّتة أو مُزالة بالفعل. يقوم هذا الأمر بإزالة كل شيء، بما في ذلك ملفات التهيئة وأي شيء آخر يتم تنظيفه بواسطة البرنامج النصي postrm. إذا تم تقديم -a أو --pending بدلاً من اسم الحزمة، فسيتم مسح جميع الحزم التي تم فكها أو إزالتها، ولكن تم وضع علامة عليها ليتم مسحها في الملف /var/lib/dpkg/status.

ملاحظة: قد تكون بعض ملفات التهيئة غير معروفة لـ `dpkg` لأنها يتم إنشاؤها ومعالجتها بشكل منفصل من خلال البرامج النصية للتهيئة. في هذه الحالة، لن يقوم `dpkg` بإزالتها بنفسه، ولكن يجب أن يعتني البرنامج النصي `postrm` الخاص بالحزمة (الذي يتم استدعاؤه بواسطة `dpkg`) بإزالتها أثناء المسح. بالطبع، ينطبق هذا فقط على الملفات الموجودة في الأدلة النظام، وليس ملفات التهيئة المكتوبة في أدلة المستخدمين الفردية.

يتكون مسح الحزمة من الخطوات التالية:

     إزالة الحزمة، إذا لم تكن قد تمت إزالتها بالفعل. راجع `--remove` للحصول على معلومات مفصلة حول كيفية القيام بذلك.

     تشغيل البرنامج النصي `postrm`.

سيتم معالجة المشغلات إلا إذا تم تحديد --no-triggers.

-V، --verify [package-name...]

يتحقق من سلامة package-name أو جميع الحزم إذا لم يتم تحديدها، عن طريق مقارنة المعلومات من الملفات المثبتة بواسطة الحزمة بالمعلومات الوصفية للملفات المخزنة في قاعدة بيانات dpkg (من الإصدار 1.17.2 من dpkg). مصدر المعلومات الوصفية للملفات في قاعدة البيانات هو الحزم الثنائية نفسها. يتم جمع هذه البيانات الوصفية في وقت فك الحزمة أثناء عملية التثبيت.

التدقيق الوحيد الذي يتم إجراؤه حاليًا هو التحقق من قيمة تجزئة MD5 لمحتويات الملف مقابل القيمة المخزنة في قاعدة البيانات. لن يتم التحقق منه إلا إذا كانت قاعدة البيانات تحتوي على تجزئة MD5 للملف. للتحقق من أي معلومات وصفية مفقودة في قاعدة البيانات، يمكن استخدام الأمر --audit. هذا مجرد فحص للسلامة ولا ينبغي اعتباره أي نوع من أنواع التحقق الأمني.

يمكن تحديد تنسيق الإخراج باستخدام الخيار --verify-format، والذي يستخدم افتراضيًا تنسيق rpm، ولكن قد يتغير ذلك في المستقبل، وبالتالي، يجب أن تكون البرامج التي تحلل مخرجات هذا الأمر محددة بشأن التنسيق الذي تتوقعه.


-C، --audit [اسم_الحزمة...]
يقوم بإجراء فحوصات للسلامة والاتساق على قاعدة البيانات للحزمة المحددة أو لجميع الحزم إذا لم يتم تحديدها
(فحوصات لكل حزمة على حدة ابتداءً من dpkg 1.17.10). على سبيل المثال، يبحث عن الحزم التي تم تثبيتها جزئيًا فقط على نظامك أو التي تحتوي على بيانات تحكم مفقودة أو خاطئة أو قديمة أو ملفات. سيوضح dpkg ما يجب القيام به لإصلاحها.

--update-avail [ملف_الحزم]
--merge-avail [ملف_الحزم]
يقوم بتحديث فكرة dpkg و dselect عن الحزم المتاحة. باستخدام الأمر `--merge-avail`، يتم دمج المعلومات القديمة مع المعلومات الموجودة في `ملف_الحزم`. باستخدام الأمر `--update-avail`، يتم استبدال المعلومات القديمة بالمعلومات الموجودة في `ملف_الحزم`. الملف `ملف_الحزم` الذي يتم توزيعه مع Debian يسمى ببساطة "Packages". إذا كان وسيط `ملف_الحزم` مفقودًا أو اسمه "-"، فسيتم قراءته من الإدخال القياسي (ابتداءً من dpkg 1.17.7). يحتفظ dpkg بسجل الحزم المتاحة في /var/lib/dpkg/available.

يوجد أمر أبسط لمرة واحدة لاسترداد وتحديث ملف المتاح وهو `dselect update`. لاحظ أن هذا الملف غير مفيد إلى حد كبير إذا كنت لا تستخدم dselect ولكن واجهة أمامية تعتمد على APT: لدى APT نظامها الخاص لتتبع الحزم المتاحة.

-A، --record-avail ملف_الحزمة...
يقوم بتحديث فكرة dpkg و dselect عن الحزم المتاحة بالمعلومات من حزمة `ملف_الحزمة`. إذا تم تحديد الخيار `--recursive` أو `-R`، فيجب أن يشير `ملف_الحزمة` إلى دليل بدلاً من ذلك.

--forget-old-unavail
أصبح هذا الأمر قديمًا ولم يعد له تأثير حيث سيتجاهل dpkg تلقائيًا الحزم غير المثبتة وغير المتاحة (ابتداءً من dpkg 1.15.4)، ولكن فقط تلك التي لا تحتوي على معلومات المستخدم مثل تحديدات الحزم.

--clear-avail
يمسح المعلومات الموجودة حول الحزم المتاحة.

--get-selections [نمط_اسم_الحزمة...]
يحصل على قائمة بتحديدات الحزم ويكتبها إلى stdout. بدون نمط، لن يتم عرض الحزم غير المثبتة (أي تلك التي تم حذفها مسبقًا).

--set-selections
يقوم بتعيين تحديدات الحزم باستخدام ملف يتم قراءته من stdin. يجب أن يكون هذا الملف بالتنسيق "حزمة الحالة"، حيث الحالة هي إحدى الحالات التالية: install أو hold أو deinstall أو purge. يُسمح أيضًا بالأسطر الفارغة وأسطر التعليقات التي تبدأ بـ "#".

يجب أن يكون ملف المتاح محدثًا حتى يكون هذا الأمر مفيدًا، وإلا سيتم تجاهل الحزم غير المعروفة مع تحذير. راجع الأوامر `--update-avail` و `--merge-avail` لمزيد من المعلومات.

--clear-selections
يقوم بتعيين الحالة المطلوبة لكل حزمة غير أساسية إلى deinstall (ابتداءً من dpkg 1.13.18). هذا مخصص للاستخدام مباشرةً قبل `--set-selections`، لإلغاء تثبيت أي حزم غير موجودة في القائمة المقدمة إلى `--set-selections`.

--yet-to-unpack
يبحث عن الحزم المحددة للتثبيت، ولكن التي لم يتم تثبيتها لسبب ما.

ملاحظة: يستخدم هذا الأمر كلاً من الملف المتاح وتحديدات الحزم.

--predep-package

اطبع حزمة واحدة هي هدف اعتماد مسبق واحد أو أكثر، وليس لديها أي تبعيات مسبقة غير مُرضية.

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

ملاحظة: يستخدم هذا الأمر كلاً من الملف المتاح وتحديدات الحزم.

يُرجع 0 عند طباعة حزمة، و 1 عندما لا تتوفر حزمة مناسبة، و 2 في حالة حدوث خطأ.

--add-architecture architecture

أضف بنية إلى قائمة البنيات التي يمكن تثبيت الحزم لها دون استخدام --force-architecture (منذ dpkg 1.16.2). البنية التي تم بناء dpkg عليها (أي، ناتج --print-architecture) هي دائمًا جزء من هذه القائمة.

--remove-architecture architecture

أزل البنية من قائمة البنيات التي يمكن تثبيت الحزم لها دون استخدام --force-architecture. إذا كانت البنية قيد الاستخدام حاليًا في قاعدة البيانات، فسيتم رفض العملية، باستثناء إذا تم تحديد --force-architecture. لا يمكن إزالة البنية التي تم بناء dpkg عليها (أي، ناتج --print-architecture) من هذه القائمة.

--print-architecture

اطبع بنية الحزم التي يقوم dpkg بتثبيتها (على سبيل المثال، "i386").

--print-foreign-architectures

اطبع قائمة مفصولة بسطر جديد للبنيات الإضافية التي تم تكوين dpkg للسماح بتثبيت الحزم لها (منذ dpkg 1.16.2).

--assert-help

قدم مساعدة حول خيارات --assert-feature (منذ dpkg 1.21.0).

--assert-feature

يؤكد أن dpkg يدعم الميزة المطلوبة. يُرجع 0 إذا كانت الميزة مدعومة بالكامل، و 1 إذا كانت الميزة معروفة ولكن لا يمكن لـ dpkg توفير دعم لها بعد، و 2 إذا كانت الميزة غير معروفة. القائمة الحالية للميزات التي يمكن تأكيدها هي:

support-predepends

يدعم حقل Pre-Depends (منذ dpkg 1.1.0).

working-epoch

يدعم العصور في سلاسل الإصدارات (منذ dpkg 1.4.0.7).

long-filenames

يدعم أسماء الملفات الطويلة في أرشيفات deb(5) (منذ dpkg 1.4.1.17).

multi-conrep

يدعم حالات التعارض والاستبدال المتعددة (منذ dpkg 1.4.1.19).

multi-arch

يدعم حقول ودلالات متعددة البنى (منذ dpkg 1.16.2).

versioned-provides

يدعم Provides ذات الإصدارات (منذ dpkg 1.17.11).

protected-field

يدعم الحقل المحمي (منذ dpkg 1.20.1).

--validate-thing string

تحقق من أن سلسلة "thing" لها بناء صحيح (منذ dpkg 1.18.16). يُرجع 0 إذا كانت السلسلة صالحة، و 1 إذا كانت السلسلة غير صالحة ولكن يمكن قبولها في سياقات متساهلة، و 2 إذا كانت السلسلة غير صالحة. القائمة الحالية للعناصر التي يمكن التحقق من صحتها هي:

pkgname

يتحقق من صحة اسم الحزمة المعطاة (منذ dpkg 1.18.16).

trigname

يتحقق من صحة اسم المشغل المعطى (منذ dpkg 1.18.16).

archname

يتحقق من صحة اسم البنية المعطى (منذ dpkg 1.18.16).

version

يتحقق من صحة الإصدار المعطى (منذ dpkg 1.18.16).


--compare-versions ver1 op ver2

قارن بين أرقام الإصدارات، حيث op هو عامل ثنائي. يقوم dpkg بإرجاع القيمة true (0) إذا تم استيفاء الشرط المحدد، والقيمة false (1) بخلاف ذلك. هناك مجموعتان من العوامل، تختلفان في كيفية تعاملهما مع ver1 أو ver2 الفارغين. هذه العوامل تعامل الإصدار الفارغ كأقدم من أي إصدار: lt le eq ne ge gt. هذه العوامل تعامل الإصدار الفارغ كأحدث من أي إصدار: lt-nl le-nl ge-nl gt-nl. هذه العوامل متوفرة فقط للتوافق مع بناء جملة ملف التحكم: < << <= = >= >> >. العوامل < و > قديمة ويجب عدم استخدامها، بسبب الدلالات المربكة. على سبيل المثال: 0.1 < 0.1 تُرجع القيمة true.

-?, --help

اعرض رسالة مساعدة موجزة.

--force-help

قدم مساعدة حول خيارات --force-thing.

-Dh, --debug=help

قدم مساعدة حول خيارات التصحيح.

--version

اعرض معلومات إصدار dpkg.

عند استخدامها مع --robot، سيكون الناتج هو رقم إصدار البرنامج في تنسيق رقمي منقّط، بدون سطر جديد.

أوامر dpkg-deb

راجع dpkg-deb(1) للحصول على مزيد من المعلومات حول الأوامر التالية، والأوامر والخيارات الأخرى غير المعروضة بواسطة واجهة dpkg الأمامية.

-b, --build directory [archive|directory]

قم ببناء حزمة deb.

-c, --contents archive

اعرض محتويات حزمة deb.

-e, --control archive [directory]

استخرج معلومات التحكم من الحزمة.

-x, --extract archive directory

استخرج الملفات الموجودة في الحزمة.

-X, --vextract archive directory

استخرج واعرض أسماء الملفات الموجودة في الحزمة.

-f, --field archive [control-field...]

اعرض حقل التحكم أو الحقول الموجودة في الحزمة.

--ctrl-tarfile archive

أخرج ملف التحكم المضغوط الموجود في حزمة Debian.

--fsys-tarfile archive

أخرج ملف نظام الملفات المضغوط الموجود في حزمة Debian.

-I, --info archive [control-file...]

اعرض معلومات حول الحزمة.

أوامر dpkg-query

راجع dpkg-query(1) للحصول على مزيد من المعلومات حول الأوامر التالية، والأوامر والخيارات الأخرى غير المعروضة بواسطة واجهة dpkg الأمامية.

-l, --list package-name-pattern...

اعرض قائمة بالحزم التي تطابق النمط المحدد.

-s, --status package-name...

اعرض حالة الحزمة المحددة.

-L, --listfiles package-name...

اعرض قائمة بالملفات المثبتة على نظامك من الحزمة المحددة.

-S, --search filename-search-pattern...

ابحث عن اسم ملف من الحزم المثبتة.

-p, --print-avail package-name...

اعرض تفاصيل حول الحزمة المحددة، كما هو موجود في /var/lib/dpkg/available. يجب على مستخدمي الواجهات الأمامية المستندة إلى APT استخدام apt show package-name بدلاً من ذلك.

الخيارات

يمكن تحديد جميع الخيارات في سطر الأوامر وفي ملف تكوين dpkg /etc/dpkg/dpkg.cfg أو ملفات تجزئة (بأسماء تطابق هذا النمط في shell [0-9a-zA-Z_-]*) في دليل التكوين /etc/dpkg/dpkg.cfg.d/. كل سطر في ملف التكوين هو إما خيار (نفس الخيار الموجود في سطر الأوامر تمامًا ولكن بدون شرطات بادئة) أو تعليق (إذا بدأ بـ "#").

--abort-after=number

غيّر عدد الأخطاء التي سيقوم dpkg بالإيقاف بعدها. الافتراضي هو 50.


-B، --auto-deconfigure

عند إزالة حزمة، قد يكون هناك احتمال أن تعتمد حزمة أخرى مثبتة على الحزمة التي تمت إزالتها. تحديد هذا الخيار سيؤدي إلى إلغاء تكوين الحزمة التي تعتمد على الحزمة التي تمت إزالتها تلقائيًا.

-D octal، --debug=octal

قم بتشغيل وضع التصحيح. يتم إنشاء octal عن طريق دمج القيم المطلوبة معًا باستخدام عامل التشغيل "أو" على مستوى البت من القائمة أدناه (لاحظ أن هذه القيم قد تتغير في الإصدارات المستقبلية). يعرض -Dh أو --debug=help قيم التصحيح هذه.

الرقم   الوصف
1   معلومات تقدم مفيدة بشكل عام
2   استدعاء وحالة البرامج النصية الخاصة بالمطور
10  إخراج لكل ملف تتم معالجته
100 الكثير من الإخراج لكل ملف تتم معالجته
20  إخراج لكل ملف تكوين
200 الكثير من الإخراج لكل ملف تكوين
40  التبعيات والصراعات
400 الكثير من إخراج التبعيات/الصراعات
10000   تفعيل ومعالجة المشغلات
20000   الكثير من الإخراج المتعلق بالمشغلات
40000   كميات كبيرة من الإخراج المتعلق بالمشغلات
1000    الكثير من المعلومات غير المفيدة حول على سبيل المثال دليل dpkg/info
2000    كميات هائلة من المعلومات غير المفيدة

--force-things
--no-force-things، --refuse-things

قم بتفعيل أو رفض (no-force وrefuse لهما نفس المعنى) بعض الأمور. things هي قائمة مفصولة بفواصل من الأمور المحددة أدناه. يعرض --force-help رسالة تصفها. الأمور التي تحمل علامة (*) يتم تفعيلها افتراضيًا.

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

all:
يقوم بتفعيل (أو تعطيل) جميع خيارات التفعيل.

downgrade(*):
قم بتثبيت حزمة، حتى إذا كان الإصدار الأحدث منها مثبتًا بالفعل.

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

configure-any:
قم بتكوين أيضًا أي حزم تم فكها ولكن لم يتم تكوينها والتي تعتمد عليها الحزمة الحالية.

hold:
السماح بالتثبيتات أو التحديثات أو الإزالات التلقائية للحزم حتى عندما يتم وضع علامة عليها على أنها "معلقة". ملاحظة: عند طلب هذه الإجراءات بشكل صريح، يتم دائمًا تجاهل حالة تحديد الحزمة "المعلقة".

remove-reinstreq:
قم بإزالة حزمة، حتى إذا كانت معطلة وتم وضع علامة عليها على أنها تتطلب إعادة التثبيت. قد يتسبب ذلك في ترك أجزاء من الحزمة على النظام، والتي سيتم نسيانها بعد ذلك بواسطة dpkg.

remove-protected:
قم بالإزالة، حتى لو كانت الحزمة تعتبر محمية (منذ dpkg 1.20.1). تحتوي الحزم المحمية في الغالب على بنية أساسية مهمة للنظام أو تستخدم لحزم meta مخصصة على مستوى النظام. قد يؤدي إزالتها إلى عدم قدرة النظام بأكمله على التشغيل أو فقدان الوظائف المطلوبة للعمل، لذا استخدمها بحذر.

remove-essential:
قم بالإزالة، حتى لو كانت الحزمة تعتبر أساسية. تحتوي الحزم الأساسية في الغالب على أوامر Unix أساسية للغاية، مطلوبة لنظام التعبئة والتغليف، أو لعمل النظام بشكل عام أو أثناء التشغيل (على الرغم من أنه يجب تحويل الأخير إلى حزم محمية بدلاً من ذلك). قد يؤدي إزالتها إلى توقف النظام بأكمله عن العمل، لذا استخدمه بحذر.

يعتمد على:
حوّل جميع مشاكل التبعية إلى تحذيرات. يؤثر هذا على حقلي "التبعيات المسبقة" و "التبعيات".

يعتمد-على-الإصدار:
لا تهتم بالإصدارات عند التحقق من التبعيات. يؤثر هذا على حقلي "التبعيات المسبقة" و "التبعيات".

يعطّل:
قم بالتثبيت، حتى لو كان سيؤدي ذلك إلى تعطيل حزمة أخرى (من الإصدار 1.14.6 من dpkg). يؤثر هذا على حقل "يعطّل".

يتعارض:
قم بالتثبيت، حتى لو كان يتعارض مع حزمة أخرى. هذا أمر خطير، لأنه سيؤدي عادةً إلى الكتابة فوق بعض الملفات. يؤثر هذا على حقل "يتعارض".

ملف-تكوين-مفقود:
قم دائمًا بتثبيت ملف التكوين المفقود دون مطالبة. هذا أمر خطير، لأنه يعني عدم الحفاظ على تغيير (إزالة) تم إجراؤه على الملف.

ملف-تكوين-جديد:
إذا تم تعديل ملف تكوين، وتغير الإصدار الموجود في الحزمة، فقم دائمًا بتثبيت الإصدار الجديد دون مطالبة، ما لم يتم تحديد الخيار `--force-confdef` أيضًا، وفي هذه الحالة، يتم تفضيل الإجراء الافتراضي.

ملف-تكوين-قديم:
إذا تم تعديل ملف تكوين، وتغير الإصدار الموجود في الحزمة، فقم دائمًا بالاحتفاظ بالإصدار القديم دون مطالبة، ما لم يتم تحديد الخيار `--force-confdef` أيضًا، وفي هذه الحالة، يتم تفضيل الإجراء الافتراضي.

ملف-تكوين-افتراضي:
إذا تم تعديل ملف تكوين، وتغير الإصدار الموجود في الحزمة، فقم دائمًا باختيار الإجراء الافتراضي دون مطالبة. إذا لم يكن هناك إجراء افتراضي، فسيتوقف عن مطالبة المستخدم، ما لم يتم تحديد الخيار `--force-confnew` أو `--force-confold` أيضًا، وفي هذه الحالة، سيستخدم ذلك لتحديد الإجراء النهائي.

ملف-تكوين-مطالبة:
إذا تم تعديل ملف تكوين، فقدم دائمًا خيار استبداله بالإصدار الموجود في الحزمة، حتى إذا لم يتغير الإصدار الموجود في الحزمة (من الإصدار 1.15.8 من dpkg). إذا تم تحديد أي من الخيارات `--force-confnew` أو `--force-confold` أو `--force-confdef` أيضًا، فسيتم استخدامه لتحديد الإجراء النهائي.

الكتابة-فوق:
قم بالكتابة فوق ملف حزمة بملف حزمة أخرى.

الكتابة-فوق-الدليل:
قم بالكتابة فوق دليل حزمة بملف.

الكتابة-فوق-الملف-المحرف:
قم بالكتابة فوق ملف محرف بإصدار غير محرف.

إضافة-تجاوز-الحالة:
قم بالكتابة فوق تجاوز حالة موجود عند إضافته (من الإصدار 1.19.5 من dpkg).

إزالة-تجاوز-الحالة:
تجاهل تجاوز الحالة المفقود عند إزالته (من الإصدار 1.19.5 من dpkg).

أمان-mac(*):
استخدم آليات التحكم في الوصول الإلزامي (MAC) الخاصة بالمنصة لتطبيق الأمان عند تثبيت الملفات في نظام الملفات (من الإصدار 1.19.5 من dpkg). على أنظمة Linux، يستخدم التنفيذ نظام SELinux.

عمليات-الإدخال-والإخراج-غير-الآمنة:
لا تقم بإجراء عمليات إدخال/إخراج آمنة عند فك الضغط (من الإصدار 1.15.8.6 من dpkg). حاليًا، هذا يعني عدم إجراء عمليات مزامنة نظام الملفات قبل تغيير أسماء الملفات، والتي من المعروف أنها تتسبب في تدهور كبير في الأداء على بعض أنظمة الملفات، لسوء الحظ، تلك التي تتطلب عمليات الإدخال/الإخراج الآمنة في المقام الأول بسبب سلوكها غير الموثوق به، مما يتسبب في إنشاء ملفات ذات حجم صفر في حالة حدوث أعطال مفاجئة في النظام.

ملاحظة: بالنسبة لنظام ext4، وهو السبب الرئيسي، ضع في اعتبارك استخدام خيار التركيب `nodelalloc` بدلاً من ذلك،
والذي سيصلح كل من تدهور الأداء وقضايا سلامة البيانات، الأخيرة عن طريق
جعل نظام الملفات لا ينتج ملفات ذات طول صفري في حالة حدوث أعطال مفاجئة للنظام مع أي برنامج لا يقوم بتنفيذ عمليات المزامنة قبل عمليات إعادة التسمية الذرية.

تحذير: قد يؤدي استخدام هذا الخيار إلى تحسين الأداء على حساب فقدان البيانات، استخدمه بحذر.

`script-chrootless`:
قم بتشغيل البرامج النصية الخاصة بالمطورين دون استخدام `chroot(2)` في `instdir` حتى لو لم يكن الحزمة يدعم هذا الوضع من التشغيل (منذ dpkg 1.18.5).

تحذير: قد يؤدي هذا إلى تدمير نظامك المضيف، استخدمه بحذر شديد.

`architecture`:
قم بمعالجة الحزم ذات البنية الخاطئة أو التي لا تحتوي على بنية.

`bad-version`:
قم بمعالجة الحزم ذات الإصدارات الخاطئة (منذ dpkg 1.16.1).

`bad-path`:
`PATH` مفقود ويحتوي على برامج مهمة، لذلك من المحتمل حدوث مشكلات.

`not-root`:
حاول (إلغاء) تثبيت الأشياء حتى عندما لا تكون مستخدمًا بصلاحيات الجذر.

`bad-verify`:
قم بتثبيت حزمة حتى إذا فشل التحقق من صحتها.

`--ignore-depends=package,...`:
تجاهل التحقق من التبعيات للحزم المحددة (في الواقع، يتم إجراء التحقق، ولكن يتم إعطاء تحذيرات فقط حول التعارضات، ولا شيء آخر). يؤثر هذا على حقول `Pre-Depends` و `Depends` و `Breaks`.

`--no-act`، `--dry-run`، `--simulate`:
افعل كل ما من المفترض القيام به، ولكن لا تقم بكتابة أي تغييرات. يتم استخدامه لمعرفة ما سيحدث مع الأمر المحدد، دون إجراء أي تغييرات فعلية.

تأكد من إعطاء `--no-act` قبل الأمر، وإلا فقد ينتهي بك الأمر إلى نتائج غير مرغوب فيها (على سبيل المثال، `dpkg --purge foo --no-act` سيقوم أولاً بإلغاء تثبيت الحزمة "foo" ثم يحاول إلغاء تثبيت الحزمة "--no-act"، على الرغم من أنك ربما كنت تتوقع أن يفعل لا شيء).

`-R`، `--recursive`:
تعامل بشكل متكرر مع جميع الملفات العادية التي تطابق النمط `*.deb` الموجودة في الدلائل المحددة وجميع الدلائل الفرعية الخاصة بها. يمكن استخدام هذا مع الأوامر `-i` و `-A` و `--install` و `--unpack` و `--record-avail`.

`-G`: لا تقم بتثبيت حزمة إذا كان إصدار أحدث من نفس الحزمة مثبتًا بالفعل. هذا هو اسم بديل لـ `--refuse-downgrade`.

`--admindir=directory`:
قم بتعيين الدليل الإداري إلى `directory`. يحتوي هذا الدليل على العديد من الملفات التي توفر معلومات حول حالة الحزم المثبتة أو غير المثبتة، إلخ. بشكل افتراضي، يتم تعيينه إلى «/var/lib/dpkg» إذا لم يتم تعيين `DPKG_ADMINDIR`.

`--instdir=directory`:
قم بتعيين دليل التثبيت، والذي يشير إلى الدليل الذي سيتم فيه تثبيت الحزم. `instdir` هو أيضًا الدليل الذي يتم تمريره إلى `chroot(2)` قبل تشغيل البرامج النصية الخاصة بالحزمة، مما يعني أن البرامج النصية ترى `instdir` كدليل جذر. بشكل افتراضي، يتم تعيينه إلى «/» إذا لم يتم تعيين `DPKG_ROOT` (منذ dpkg 1.21.10).

`--root=directory`:
قم بتعيين دليل الجذر إلى `directory`، مما يضبط دليل التثبيت على «directory» والدليل الإداري على «directory/var/lib/dpkg» إذا لم يتم تعيين `DPKG_ROOT` (منذ dpkg 1.21.10).

-O، --selected-only
معالجة الحزم التي تم تحديدها فقط للتثبيت. يتم التحديد الفعلي باستخدام dselect أو بواسطة dpkg، عند معالجة الحزم. على سبيل المثال، عند إزالة حزمة، سيتم تحديدها لإلغاء تثبيتها.

-E، --skip-same-version
عدم تثبيت الحزمة إذا كان نفس الإصدار والبنية للحزمة مثبتًا بالفعل.

ابتداءً من dpkg 1.21.10، يتم أيضًا أخذ البنية في الاعتبار، مما يتيح إمكانية الترقية المتبادلة للحزم أو تثبيت مثيلات إضافية قابلة للتثبيت في وقت واحد بنفس الإصدار ولكن ببنيات مختلفة.

--pre-invoke=command
--post-invoke=command
تعيين أمر "invoke hook" ليتم تنفيذه عبر "sh -c" قبل أو بعد تشغيل dpkg لإجراءات فك الحزم، والتكوين، والتثبيت، وإجراء "triggers-only"، والإزالة، والمسح (ابتداءً من dpkg 1.15.4)، وإجراءات "add-architecture" و "remove-architecture" (ابتداءً من dpkg 1.17.19). يمكن تحديد هذا الخيار عدة مرات. يتم الحفاظ على ترتيب تحديد الخيارات، مع إعطاء الأولوية للخيار المحدد في ملفات التكوين. يتم تعيين متغير البيئة DPKG_HOOK_ACTION للـ "hooks" للإجراء الحالي لـ dpkg.

لا يتم تنفيذ "invoke hooks" عند تحديد --no-act، أو عند التشغيل كمستخدم عادي بدون --force-not-root.

ملاحظة: قد تستدعي الواجهات الأمامية dpkg عدة مرات لكل استدعاء، مما قد يؤدي إلى تشغيل "hooks" أكثر من المتوقع.

--path-exclude=glob-pattern
--path-include=glob-pattern
تعيين "glob-pattern" كمرشح مسار، إما عن طريق استبعاد أو إعادة تضمين المسارات التي تم استبعادها مسبقًا والتي تتطابق مع الأنماط المحددة أثناء التثبيت (ابتداءً من dpkg 1.15.8).

تحذير: ضع في اعتبارك أنه اعتمادًا على المسارات المستبعدة، قد يتسبب ذلك في تعطيل نظامك بالكامل، لذا استخدمه بحذر.

تستخدم الأنماط العامة نفس الأحرف البدل المستخدمة في shell، حيث يطابق '\*' أي تسلسل من الأحرف، بما في ذلك السلسلة الفارغة وأيضًا '/'. على سبيل المثال، «/usr/*/READ\*» يطابق «/usr/share/doc/package/README». كالمعتاد، يطابق '?' أي حرف واحد (أيضًا بما في ذلك '/'). و '\[ ' يبدأ فئة أحرف، والتي يمكن أن تحتوي على قائمة بالأحرف والنطاقات والتكميلات. راجع glob(7) للحصول على معلومات مفصلة حول الأحرف البدل. ملاحظة: قد يعيد التنفيذ الحالي تضمين المزيد من الدلائل والروابط الرمزية أكثر مما هو ضروري، خاصةً عندما يكون هناك إعادة تضمين أكثر تحديدًا، وذلك ليكون في مأمن وتجنب فشل فك الحزم المحتمل؛ قد يتم إصلاح ذلك في المستقبل.

يمكن استخدام ذلك لإزالة جميع المسارات باستثناء بعض المسارات المحددة؛ حالة نموذجية هي:

--path-exclude=/usr/share/doc/*
--path-include=/usr/share/doc/*/copyright

لإزالة جميع ملفات الوثائق باستثناء ملفات حقوق النشر.

يمكن تحديد هذين الخيارين عدة مرات، ويمكن أن يتم تداخلهما مع بعضهما البعض. تتم معالجة كليهما بالترتيب المحدد، مع اتخاذ القاعدة الأخيرة التي تطابق اسم الملف القرار.

يتم تطبيق المرشحات عند فك ضغط الحزم الثنائية، وبالتالي فهي تعرف فقط نوع الكائن الذي يتم تصفية البيانات منه حاليًا (مثل ملف عادي أو دليل)، وليس لديها أي رؤية للكائنات التي ستأتي لاحقًا. نظرًا لأن هذه المرشحات لها آثار جانبية (على عكس مرشحات find(1))، فإن استبعاد مسار ملف دقيق يحدث أن يكون كائن دليل مثل /usr/share/doc لن يحقق النتيجة المرجوة، وسيتم استبعاد هذا المسار فقط (والذي يمكن إعادة تضمينه تلقائيًا إذا رأت التعليمات البرمجية الحاجة إلى ذلك). لن يتم فك ضغط أي ملفات لاحقة موجودة داخل هذا الدليل.

تلميح: تأكد من أن globes لا يتم توسيعها بواسطة shell الخاص بك.

--verify-format اسم-التنسيق

يحدد تنسيق الإخراج لأمر --verify (من dpkg 1.17.2).

التنسيق الوحيد المدعوم حاليًا هو rpm، والذي يتكون من سطر لكل مسار فشل في أي فحص. تكون هذه الأسطر بالتنسيق التالي:

missing [c] مسار-الملف (رسالة-الخطأ)
?M5?????? [c] مسار-الملف

تُستخدم الأحرف التسعة الأولى للإبلاغ عن نتيجة الفحص، إما حرفيًا "missing" عندما يكون الملف غير موجود أو لا يمكن استرداد بياناته الوصفية، أو أحد الأحرف الخاصة التالية التي تُبلغ عن نتيجة كل فحص:

‘؟’ يشير إلى أنه لم يتم إجراء الفحص (نقص في الدعم، أو أذونات الملف، إلخ).

‘.’ يشير إلى أن الفحص قد نجح.

‘A-Za-z0-9’

يشير إلى أن فحصًا معينًا قد فشل. المواضع والأحرف الأبجدية الرقمية التالية مدعومة حاليًا:

1 ‘؟’

لم يتم دعم هذه الفحوصات حاليًا، وستكون دائمًا ‘؟’.

2 ‘M’

فشل فحص وضع الملف (من dpkg 1.21.0). نظرًا لأنه لا يتم حاليًا تتبع بيانات وصفية للمسار، فلا يمكن محاكاة هذا الفحص إلا من خلال طريقة بسيطة للغاية للمسارات التي تحتوي على ملخص معروف، مما يعني أنه يجب أن تكون ملفات عادية، وسيفشل الفحص إذا لم يكن المسار ملفًا عاديًا على نظام الملفات. لن ينجح هذا الفحص حاليًا لأنه لا يمتلك معلومات كافية.

3 ‘5’

فشل فحص الملخص، مما يعني أن محتويات الملف قد تغيرت. هذا مجرد فحص للنزاهة ولا ينبغي اعتباره أي نوع من أنواع التحقق الأمني.

4 9 ‘؟’

لم يتم دعم هذه الفحوصات حاليًا، وستكون دائمًا ‘؟’.

يتبع السطر بمسافة وحرف سمة. حرف السمة التالي مدعوم:

‘c’ المسار هو ملف تكوين.

أخيرًا، يليه مسافة أخرى والمسار.

في حالة كان الإدخال من النوع "missing"، ولم يكن الملف موجودًا بالفعل على نظام الملفات، فإن السطر يليه مسافة ورسالة الخطأ الموجودة بين قوسين.

--status-fd n

أرسل معلومات الحالة والتقدم الخاصة بالحزمة القابلة للقراءة آليًا إلى واصف الملف n. يمكن تحديد هذا الخيار عدة مرات. تكون المعلومات بشكل عام سجلًا واحدًا لكل سطر، في أحد التنسيقات التالية:


الحالة: حزمة: الحالة

تم تغيير حالة الحزمة؛ الحالة هي كما في ملف الحالة.

الحالة: حزمة: خطأ: رسالة خطأ موسعة

حدث خطأ. سيتم تحويل أي أسطر جديدة ممكنة في رسالة الخطأ الموسعة إلى مسافات قبل الإخراج.

الحالة: ملف: موجه ملف التكوين: 'قديم' 'جديد' قام المستخدم بتحريره تم تحريره

يتم سؤال المستخدم عن سؤال حول ملف التكوين.

المعالجة: المرحلة: حزمة

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

--status-logger=الأمر

إرسال معلومات حالة الحزمة ومعلومات التقدم القابلة للقراءة آليًا إلى الإدخال القياسي للأمر shell، ليتم تشغيلها عبر "sh -c" (بدءًا من dpkg 1.16.0). يمكن تحديد هذا الخيار عدة مرات. تنسيق الإخراج المستخدم هو نفسه المستخدم في --status-fd.

لا يتم تنفيذ مسجلات الحالة عندما يتم تحديد --no-act، أو عند التشغيل كمستخدم غير root بدون --force-not-root.

--log=اسم_الملف

تسجيل تحديثات حالة وتغييرات الإجراءات في اسم_الملف، بدلاً من /var/log/dpkg.log الافتراضي. إذا تم إعطاء هذا الخيار عدة مرات، فسيتم استخدام اسم الملف الأخير. رسائل السجل تكون بالصيغة التالية:

YYYY-MM-DD HH:MM:SS بدء النوع الأمر

لكل استدعاء dpkg حيث يكون النوع هو أرشيفات (مع أمر فك أو تثبيت) أو حزم (مع أمر تهيئة أو تشغيل-فقط أو إزالة أو تنقية).

YYYY-MM-DD HH:MM:SS الحالة الحالة الحزمة الإصدار_المثبت

لتحديثات تغيير الحالة.

YYYY-MM-DD HH:MM:SS الإجراء الحزمة الإصدار_المثبت الإصدار_المتاح

للإجراءات حيث يكون الإجراء هو أحد التثبيت أو الترقية أو التهيئة أو تشغيل_المشغلات أو الاختفاء أو الإزالة أو التنقية.

YYYY-MM-DD HH:MM:SS ملف التكوين اسم_الملف القرار

لتغييرات ملف التكوين حيث يكون القرار إما تثبيت أو الاحتفاظ.

--robot

استخدام تنسيق إخراج قابل للقراءة آليًا. يوفر هذا واجهة للبرامج التي تحتاج إلى تحليل إخراج بعض الأوامر التي لا تصدر تنسيق إخراج قابل للقراءة آليًا. لن يتم استخدام أي ترجمة، وسيتم تعديل الإخراج لتسهيل تحليله.

الخيار الوحيد المدعوم حاليًا هو --version.

--no-pager

تعطيل استخدام أي برنامج عرض صفحات عند عرض المعلومات (بدءًا من dpkg 1.19.2).

--no-debsig

لا تحاول التحقق من توقيعات الحزمة.

--no-triggers

عدم تشغيل أي مشغلات في هذه العملية (بدءًا من dpkg 1.14.17)، ولكن سيتم تسجيل التنشيطات. إذا تم استخدامه مع --configure حزمة أو --triggers-only حزمة، فسيتم تشغيل برنامج ما بعد التثبيت للحزمة المسماة حتى إذا كان مطلوبًا فقط تشغيل المشغلات. قد يؤدي استخدام هذا الخيار إلى ترك الحزم في حالات "المشغلات-في-حالة-انتظار" و "المشغلات-في-حالة-معلقة" غير الصحيحة. يمكن إصلاح ذلك لاحقًا عن طريق تشغيل: dpkg --configure --pending.

--triggers

يلغي خيار --no-triggers السابق (بدءًا من dpkg 1.14.17).

حالة الخروج

0 تم تنفيذ الأمر المطلوب بنجاح. أو أرجع أمر تحقق أو تأكيد القيمة true.

1.  أمر فحص أو تأكيد يُرجع قيمة خاطئة.

2.  خطأ قاتل أو غير قابل للاسترداد بسبب استخدام غير صالح للأوامر، أو تفاعلات مع
النظام، مثل الوصول إلى قاعدة البيانات، أو تخصيصات الذاكرة، إلخ.

البيئة

البيئة الخارجية

PATH
من المتوقع أن يتم تعريف هذا المتغير في البيئة ويشير إلى مسارات النظام
حيث يجب العثور على العديد من البرامج المطلوبة. إذا لم يتم تعيينه أو لم يتم العثور على البرامج، فسيقوم dpkg بإيقاف التشغيل.

HOME
إذا تم تعيينه، فسيستخدمه dpkg كدليل لقراءة ملف التكوين الخاص بالمستخدم.

TMPDIR
إذا تم تعيينه، فسيستخدمه dpkg كدليل لإنشاء ملفات ودلائل مؤقتة.

SHELL
سيقوم البرنامج dpkg بتنفيذ هذا البرنامج عند بدء تشغيل shell تفاعلي جديد، أو عند إنشاء
أمر باستخدام shell.

PAGER
DPKG_PAGER
سيقوم البرنامج dpkg بتنفيذ هذا البرنامج عند تشغيل أداة عرض، والتي سيتم تشغيلها باستخدام «$SHELL -c»،
على سبيل المثال عند عرض اختلافات ملفات التكوين. إذا لم يتم تعيين SHELL، فسيتم استخدام «sh» بدلاً من ذلك.

يُعطّي المتغير DPKG_PAGER الأولوية على المتغير PAGER (من الإصدار 1.19.2 من dpkg). إذا لم يكن أي من البرامج المشار إليها بواسطة DPKG_PAGER أو PAGER موجودًا، فسيتم تجربة البرامج التالية بالترتيب (من الإصدار 1.22.12 من dpkg): أداة العرض الافتراضية، ثم [less]({filename}../../less)(1)، و more(1)، وأخيراً [cat]({filename}../../cat)(1).

DPKG_COLORS
يحدد وضع الألوان (من الإصدار 1.18.5 من dpkg). القيم المقبولة حاليًا هي: auto (افتراضي)، و always و never.

DPKG_NLS
إذا تم تعيينه، فسيتم استخدامه لتحديد ما إذا كان سيتم تفعيل دعم اللغة الأصلية، والمعروف أيضًا باسم
دعم التدويل (أو i18n) (من الإصدار 1.22.7 من dpkg). القيم المقبولة هي: 0 و 1 (افتراضي).

DPKG_DEBUG
يحدد قناع التصحيح (من الإصدار 1.21.10 من dpkg) من قيمة ثمانية. يتم وصف العلامات المقبولة حاليًا في خيار --debug.

DPKG_FORCE
يحدد علامات الإجبار (من الإصدار 1.19.5 من dpkg). عند وجود هذا المتغير، لن يتم تطبيق أي قيم افتراضية مدمجة للإجبار. إذا كان المتغير موجودًا ولكنه فارغ، فسيتم تعطيل جميع علامات الإجبار.

DPKG_ROOT
إذا تم تعيينه ولم يتم تحديد خيارات --instdir أو --root، فسيتم استخدامه كدليل جذر نظام الملفات (من الإصدار 1.21.10 من dpkg).

DPKG_ADMINDIR
إذا تم تعيينه ولم يتم تحديد خيارات --admindir أو --root، فسيتم استخدامه كدليل إداري لـ dpkg (من الإصدار 1.20.0 من dpkg).

DPKG_FRONTEND_LOCKED
يتم تعيينه بواسطة واجهة مستخدم مدير الحزم لإعلام dpkg بأنه لا ينبغي عليه الحصول على قفل الواجهة الأمامية
(من الإصدار 1.19.1 من dpkg).

DPKG_PATH_PASSWD
يحدد المسار لملف كلمة مرور النظام. هذا المسار نسبي لدليل --root.
القيمة الافتراضية هي /etc/passwd.

من الإصدار 1.22.16 من dpkg.

DPKG_PATH_GROUP
يحدد المسار لملف مجموعة النظام. هذا المسار نسبي لدليل --root.
القيمة الافتراضية هي /etc/group.

من الإصدار 1.22.16 من dpkg.

البيئة الداخلية

LESS
يتم تعريفه بواسطة dpkg على «-FRSXMQ»، إذا لم يتم تعيينه بالفعل، عند إنشاء أداة عرض (من الإصدار 1.19.2 من dpkg).
لتغيير السلوك الافتراضي، يمكن تعيين هذا المتغير مسبقًا على قيمة أخرى، بما في ذلك سلسلة فارغة، أو يمكن تعيين متغيرات PAGER أو DPKG_PAGER لتعطيل خيارات معينة باستخدام «-+»، على سبيل المثال DPKG_PAGER="less -+F".

DPKG_ROOT
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة للإشارة إلى التثبيت الذي يجب التعامل معه
(ابتداءً من dpkg 1.18.5). القيمة مخصصة لإلحاقها بأي مسار يتعامل معه البرنامج النصي الخاص بالصيانة. أثناء التشغيل العادي، يكون هذا المتغير فارغًا. عند تثبيت الحزم في
دليل تثبيت مختلف، يقوم dpkg عادةً باستدعاء البرامج النصية الخاصة بالصيانة باستخدام chroot(2) ويترك هذا المتغير فارغًا، ولكن إذا تم تحديد --force-script-chrootless، يتم تخطي استدعاء chroot(2) ويتم تعيين هذا المتغير على instdir (والذي سيكون غير فارغ).

DPKG_ADMINDIR
يحدده dpkg في بيئة العمليات الفرعية للإشارة إلى دليل dpkg الإداري الذي سيتم استخدامه (ابتداءً من dpkg 1.16.0). يتم دائمًا تعيين هذا المتغير على القيمة الحالية لـ --admindir.

DPKG_FORCE
يحدده dpkg في بيئة العمليات الفرعية لجميع أسماء خيارات القوة الممكنة حاليًا، مفصولة بفواصل (ابتداءً من dpkg 1.19.5).

DPKG_SHELL_REASON
يحدده dpkg في shell الذي يتم إنشاؤه في مطالبة ملف التكوين لفحص الموقف (ابتداءً من dpkg 1.15.6). القيمة الصالحة الحالية: conffile-prompt.

DPKG_CONFFILE_OLD
يحدده dpkg في shell الذي يتم إنشاؤه في مطالبة ملف التكوين لفحص الموقف (ابتداءً من dpkg 1.15.6). يحتوي على مسار ملف التكوين القديم.

DPKG_CONFFILE_NEW
يحدده dpkg في shell الذي يتم إنشاؤه في مطالبة ملف التكوين لفحص الموقف (ابتداءً من dpkg 1.15.6). يحتوي على مسار ملف التكوين الجديد.

DPKG_HOOK_ACTION
يحدده dpkg في shell الذي يتم إنشاؤه عند تنفيذ إجراء ربط (ابتداءً من dpkg 1.15.4). يحتوي على إجراء dpkg الحالي.

DPKG_RUNNING_VERSION
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة للإشارة إلى إصدار مثيل dpkg الحالي الذي يعمل (ابتداءً من dpkg 1.14.17).

DPKG_MAINTSCRIPT_PACKAGE
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة للإشارة إلى اسم الحزمة (غير المؤهل معمارياً) التي يتم التعامل معها (ابتداءً من dpkg 1.14.17).

DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة للإشارة إلى عدد مثيلات الحزمة، أي عدد مثيلات الحزمة التي يكون فيها الحالة أكبر من "غير مثبت" (ابتداءً من dpkg 1.17.2).

DPKG_MAINTSCRIPT_ARCH
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة للإشارة إلى البنية التي تم بناء الحزمة لها (ابتداءً من dpkg 1.15.4).

DPKG_MAINTSCRIPT_NAME
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة للإشارة إلى اسم البرنامج النصي الذي يتم تشغيله، وهو أحد preinst أو postinst أو prerm أو postrm (ابتداءً من dpkg 1.15.7).

DPKG_MAINTSCRIPT_DEBUG
يحدده dpkg في بيئة البرنامج النصي الخاص بالصيانة لإعطاء قيمة ('0' أو '1') تشير إلى ما إذا تم طلب التصحيح (باستخدام خيار --debug) للبرامج النصية الخاصة بالصيانة (ابتداءً من dpkg 1.4).

الملفات

/etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*
ملفات أجزاء التكوين (ابتداءً من dpkg 1.15.4).

/etc/dpkg/dpkg.cfg

ملف التكوين الذي يحتوي على الخيارات الافتراضية.

/var/log/dpkg.log

ملف السجل الافتراضي (انظر /etc/dpkg/dpkg.cfg وخيار --log).

الملفات الأخرى المدرجة أدناه موجودة في أدلةها الافتراضية، انظر خيار --admindir لمعرفة كيفية تغيير مواقع هذه الملفات.

/var/lib/dpkg/available

قائمة بالباقات المتاحة.

/var/lib/dpkg/status

حالات الباقات المتاحة. يحتوي هذا الملف على معلومات حول ما إذا كانت الباقة مُعلمة للإزالة أم لا، وما إذا كانت مُثبتة أم لا، إلخ. انظر القسم "معلومات حول الباقات" للحصول على مزيد من المعلومات.

يتم عمل نسخة احتياطية من ملف الحالة يوميًا في /var/backups. يمكن أن يكون ذلك مفيدًا في حالة فقدانه أو تلفه بسبب مشاكل في نظام الملفات.

يتم وصف تنسيق ومحتويات الباقة الثنائية في deb(5).

أسماء الملفات في نظام الملفات

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

*.dpkg-new

أثناء فك الحزم، يقوم dpkg باستخراج الكائنات الجديدة لنظام الملفات إلى مسار الملف.dpkg-new (باستثناء الدلائل الموجودة أو الروابط الرمزية إلى الدلائل التي يتم تخطيها)، وبمجرد الانتهاء من ذلك وبعد إجراء نسخ احتياطية للكائنات القديمة، يتم تغيير اسم الكائنات إلى مسار الملف.

*.dpkg-tmp

أثناء فك الحزم، يقوم dpkg بإنشاء نسخ احتياطية من كائنات نظام الملفات القديمة إلى مسار الملف.dpkg-tmp بعد استخراج الكائنات الجديدة. يتم إجراء هذه النسخ الاحتياطية إما عن طريق تغيير الاسم للدلائل (ولكن فقط إذا تم تغيير نوع الملف)، أو عن طريق إنشاء نسخة رابط رمزي للروابط الرمزية، أو عن طريق إنشاء رابط ثابت لأي كائن نظام ملفات آخر، باستثناء ملفات التكوين التي لا يتم عمل نسخ احتياطية لها لأنها تتم معالجتها في مرحلة لاحقة.

في حالة الحاجة إلى الاستعادة، يتم استخدام هذه النسخ الاحتياطية لاستعادة المحتويات السابقة للكائنات. يتم إزالة هذه النسخ الاحتياطية تلقائيًا بعد اكتمال التثبيت.

*.dpkg-old

أثناء التكوين، عند تثبيت إصدار جديد، يمكن لـ dpkg إنشاء نسخة احتياطية من ملف التكوين المُعدَّل السابق إلى مسار الملف.dpkg-old.

*.dpkg-dist

أثناء التكوين، عند الاحتفاظ بالإصدار القديم، يمكن لـ dpkg إنشاء نسخة احتياطية من ملف التكوين الجديد غير المُعدَّل إلى مسار الملف.dpkg-dist.

الأمن

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

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

يجب ألا تتطلب عمليات الاستعلام امتيازات الجذر، وتفويض تنفيذها إلى مستخدمين غير مميزين عبر بعض الأوامر التي تمنح الامتيازات يمكن أن يكون له آثار أمنية (مثل تصعيد الامتيازات)، على سبيل المثال عند استدعاء برنامج عرض الصفحات تلقائيًا بواسطة الأداة.


انظر أيضًا قسم الأمان في صفحات دليل dpkg-deb(1) و dpkg-split(1).

الأخطاء

عادةً ما يوفر الخيار `--no-act` معلومات أقل مما قد يكون مفيدًا.

أمثلة

لعرض قائمة بالحزم المثبتة المتعلقة بمحرر vi(1) (لاحظ أن dpkg-query لم تعد تقوم بتحميل الملف المتاح افتراضيًا، ويجب استخدام خيار dpkg-query --load-avail بدلاً من ذلك لهذا الغرض):

dpkg -l '*vi*'

لعرض الإدخالات في /var/lib/dpkg/available لحزمتين:

dpkg --print-avail vim neovim | less

للبحث في قائمة الحزم بنفسك:

dpkg --print-avail | less

لإزالة حزمة neovim المثبتة:

dpkg -r neovim

لتثبيت حزمة، تحتاج أولاً إلى العثور عليها في أرشيف أو قرص وسائط. عند استخدام أرشيف يعتمد على هيكل مجمع، فإن معرفة منطقة الأرشيف واسم الحزمة يكفي لاستنتاج المسار:

dpkg -i /media/bdrom/pool/main/v/vim/vim_9.0.2018-1_amd64.deb

لإنشاء نسخة محلية من حالات تحديد الحزم:

dpkg --get-selections >myselections

قد تقوم بنقل هذا الملف إلى جهاز كمبيوتر آخر، وبعد تحديث الملف المتاح هناك باستخدام واجهة المستخدم الأمامية لمدير الحزم الذي تختاره (راجع [https://wiki.debian.org/Teams/Dpkg/FAQ#set-selections] لمزيد من التفاصيل)، على سبيل المثال:

apt-cache dumpavail | dpkg --merge-avail

يمكنك تثبيته باستخدام:

dpkg --clear-selections
dpkg --set-selections <myselections

لاحظ أن هذا لن يقوم بتثبيت أو إزالة أي شيء في الواقع، ولكنه سيقوم فقط بتعيين حالة التحديد للحزم المطلوبة. ستحتاج إلى تطبيق آخر لتنزيل وتثبيت الحزم المطلوبة. على سبيل المثال، قم بتشغيل apt-get dselect-upgrade.

عادةً ما تجد أن dselect(1) يوفر طريقة أكثر ملاءمة لتعديل حالات تحديد الحزم.

وظائف إضافية

يمكن الحصول على وظائف إضافية عن طريق تثبيت أي من الحزم التالية: apt و aptitude و debsig-verify.

انظر أيضا

aptitude(8)، apt(8)، dselect(1)، dpkg-deb(1)، dpkg-query(1)، deb(5)، deb-control(5)، dpkg.cfg(5)، و dpkg-reconfigure(8).

المؤلفون

راجع /usr/share/doc/dpkg/THANKS للحصول على قائمة بالأشخاص الذين ساهموا في dpkg.