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. هیچ یک از این شیوه‌ها ۱۰۰٪ قابل اعتماد نیستند، اما معمولا منجر به استفاده از پاسخ پیش‌فرض می‌گردند چرا که اکثر اسکریپت‌ها عدم پاسخ به پرسش‌ها را به منزله پاسخ پیش‌فرض می‌دانند.

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