Product SiteDocumentation Site

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

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

6.9.1. Конфигурирование dpkg

Как мы уже упоминали (см. вкладку УГЛУБЛЯЕМСЯ Как избежать вопросов по поводу конфигурационных файлов), dpkg можно указать не запрашивать подтверждение при замене файла конфигурации (опция --force-confdef --force-confold). Однако взаимодействия могут иметь три других источника: некоторые исходят от самого APT, некоторые обрабатываются debconf, а некоторые происходят в командной строке из-за сценариев конфигурации пакета (иногда обрабатывается ucf).

6.9.2. Настройка APT (конфигурирование)

В случае применения APT - это просто: опция -y (или --assume-yes) скажет APT-у, что надо принимать во внимание - на все вопросы ответ пользователя будет “yes”.

6.9.3. Настройка debconf

Случай debconf заслуживает более подробного описания. Эта программа с самого начала была предназначена для контроля актуальности и объёма вопросов, отображаемых пользователю, а также способа их отображения. Вот почему её конфигурация требует минимального приоритета вопросов; отображаются только вопросы выше минимального приоритета. debconf допускает ответы по умолчанию для вопросов (определённые сопровождающими пакетов), которые она пропустит.
Другим важным элементом конфигурации является интерфейс, используемый фронтендом. Если вы выберете noninteractive из всех вариантов, то всё взаимодействие с пользователем будет отключено. Если пакет попытается отобразить информационное сообщение, оно будет отправлено администратору по электронной почте.
Для переконфигурирования 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