Product SiteDocumentation Site

6.9. التحديثات الآلية

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

6.9.1. إعداد dpkg

As we have already mentioned (see sidebar التعمق أكثر تفادي أسئلة المتعلقة بملفات الضبط), dpkg can be instructed not to ask for confirmation when replacing a configuration file (with the --force-confdef --force-confold options). Interactions can, however, have three other sources: some come from APT itself, some are handled by debconf, and some happen on the command line due to package configuration scripts (sometimes handled by ucf).

6.9.2. إعداد APT

حالة APT بسيطة: يطلب الخيار -y (أو --assume-yes) من APT أن تعتبر الإجابة عن جميع أسئلتها هي ”نعم“.

6.9.3. إعداد debconf

تستحق حالة debconf تفصيلاً أكثر. لقد صُمِّم هذا البرنامج، منذ البداية، للتحكم بكمية ومستوى الأسئلة الموجهة للمستخدم، بالإضافة إلى طريقة عرضها. لهذا فإن إعداده يتطلب تحديد أولوية دنيا للأسئلة؛ وتعرض الأسئلة التي تتجاوز هذه الأولوية الدنيا فقط. يستخدم debconf الإجابة الافتراضية (التي حددها مشرف الحزمة) للأسئلة التي يراد تخطيها.
The other relevant configuration element is the interface used by the frontend. If you choose noninteractive out of the choices, all user interaction is disabled. If a package tries to display an informative note, it will be sent to the administrator by email.
لإعادة ضبط debconf، استخدم أداة dpkg-reconfigure من الحزمة debconf؛ الأمر المطلوب هو dpkg-reconfigure debconf. لاحظ أن القيم المضبوطة يمكن تجاوزها مؤقتاً باستخدام متغيرات البيئة عند الحاجة (مثلاً، يتحكم DEBIAN_FRONTEND بالواجهة، كما هو موثق في صفحة الدليل debconf(7)‎).

6.9.4. معالجة تفاعلات سطر الأوامر

آخر مصدر لطلب التفاعل، وأصعب مصدر للتخلص منه، هو سكربتات الإعداد التي يُشغّلها dpkg. لا يوجد أي حل قياسي للأسف، ولا توجد إجابة أفضل من غيرها.
الطريقة الشائعة هي إغلاق مجرى الدخل القياسي بإعادة توجيهه إلى المحتوى الفارغ للملف /dev/null باستخدام command </dev/null، أو تغذيته بعدد لانهائي من محارف newline. كلا الطريقتين غير مضمونة 100%، لكنها تؤدي عموماً إلى استخدام الإجابات الافتراضية، نظراً لأن معظم السكربتات تعتبر الصمت قبولاً بالقيمة الافتراضية.

6.9.5. الخلطة المعجزة

إذا جمعنا العناصر السابقة، يمكننا تصميم سكربت صغير لكنه موثوق يتولى التحديثات آلياً.

مثال 6.5. سكربت التحديث اللاتفاعلي

export DEBIAN_FRONTEND=noninteractive
yes '' | apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade