Product SiteDocumentation Site

6.9. Автоматическое Обновление

Поскольку Falcot Corp имеет много компьютеров, но ограничена в численности сотрудников, его администраторы пытаются как можно больше автоматизировать процесс обновления. Поэтому программы, которым поручили выполнение этих процессов, должны выполняться без вмешательства человека.

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 допускает ответы по умолчанию для вопросов (определенные сопровождающими пакетов), которые она пропустит.
Другой, уместный для ознакомления, элемент конфигурации - интерфейс использования программы через оболочку. Если вы измените на вариант noninteractive, то интерактивность с пользователем будет отключена. Если пакет будет пытаться отобразить какие-то информационные сообщение - они будут высылаться на email администратору.
Для переконфигурирования debconf, используйте программу dpkg-reconfigure из пакета debconf; соответствующая команда - dpkg-reconfigure debconf. Запомните, что сконфигурированные переменные могут быть временно переопределены другими переменными среды окружения, когда понадобится (для примера, переменная DEBIAN_FRONTEND управляет оболочкой интерфейса, как описано в странице руководства debconf(7) ).

6.9.4. Управление Взаимодействием Через Командную Строку

Последний ключ взаимодействия, а такой случай нельзя исключить, это запуск конфигурационных скриптов через программу dpkg. К сожалению в этом случае нет стандартных решений, и нет ответов в подавляющем большинстве случаев какие ответы лучше, чем другие (то есть в данном случае трудно дать совет - здесь все индивидуально, надо быть очень внимательными).
Общий подход заключается в подавлении стандартной информации на вводе, перенаправляя пустое содержание /dev/null внутрь этого с командой command </dev/null, или поддерживать это с нескончаемый потоком новых строк. Ни один из этих методов не является на 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