Поддержание системы в актуальном состоянии — основа безопасности Linux. Но ежедневно вручную проверять и устанавливать обновления нереалистично, особенно когда речь идёт о нескольких серверах. На помощь приходит unattended-upgrades — штатный механизм автоматической установки обновлений в Debian и Ubuntu.
В этом руководстве мы подробно разберём, как установить, настроить и проверить работу автоматических обновлений, а также затронем продвинутые параметры: уведомления по почте, перезагрузку и исключения отдельных пакетов.
Что такое Unattended Upgrades и зачем это нужно
Unattended Upgrades — это служба, которая периодически проверяет наличие доступных обновлений и применяет их без участия пользователя. Особенно полезна для:
-
Серверов — чтобы критические уязвимости закрывались оперативно, даже если вы не заходите на машину.
-
Рабочих станций — для минимизации рутины при сохранлении контроля.
-
Контейнеров и облачных ВМ — где важно сократить время от выпуска патча до его установки.
По умолчанию unattended-upgrades настроен консервативно: он обновляет только пакеты из репозитория -security и не выполняет автоматическую перезагрузку. Однако эти параметры легко изменить — и мы это сделаем.
Установка пакетов
Пакет unattended-upgrades обычно предустановлен, но лучше убедиться в этом явно.
1. Проверьте, установлен ли пакет
| dpkg -l unattended-upgrades |
Если вывод показывает no packages found, установите его.
2. Установка самого пакета и вспомогательных инструментов
-
apt-listchanges — перед установкой покажет журнал изменений пакетов. Можно отключить, но на серверах часто оставляют включённым для отслеживания важных нововведений.
-
apt-utils — набор вспомогательных утилит APT.

Первоначальная настройка
Самый быстрый способ включить базовую автоматическую установку — использовать утилиту dpkg-reconfigure.
В интерактивном окне выберите Да (Yes), чтобы разрешить автоматическую загрузку и установку стабильных обновлений.
После этого будет автоматически создан (или дополнен) файл /etc/apt/apt.conf.d/20auto-upgrades. Выглядит он так:
-
Update-Package-Lists — частота обновления списка пакетов (1 означает ежедневно).
-
Download-Upgradeable-Packages — загружать доступные обновления (1 — ежедневно).
-
AutocleanInterval — удалять устаревшие пакеты из кэша (каждые 7 дней).
-
Unattended-Upgrade — непосредственно применять обновления (1 — ежедневно).
Если файл не создался, вы можете добавить эти строки вручную через любой текстовый редактор.

Тонкая настройка: главный конфигурационный файл
Все ключевые параметры хранятся в /etc/apt/apt.conf.d/50unattended-upgrades. Откройте его для редактирования:
Рассмотрим основные секции.

1. Какие репозитории обновлять (Allowed Origins)
В секции Unattended-Upgrade::Allowed-Origins указаны источники, откуда будут браться обновления.
По умолчанию включены обновления безопасности (-security) и базового репозитория. Чтобы разрешить обновления из -updates (обычно содержат исправления ошибок), раскомментируйте строку:
| «${distro_id}:${distro_codename}-updates»; |
❗ Для production-серверов обычно оставляют только -security, чтобы минимизировать риск неожиданных изменений.
2. Автоматическая перезагрузка
Если было обновлено ядро или другие критичные компоненты, после установки пакетов может потребоваться перезагрузка. Unattended Upgrades позволяет управлять этим поведением.
Когда параметр установлен в true, система будет перезагружаться при необходимости. По умолчанию он отключён (false), что безопаснее для серверов.
Можно задать время перезагрузки:
В этом случае перезагрузка произойдёт в указанное время (в локальной временной зоне).
⚠️ Внимание: Если вы разрешаете перезагрузку, учтите возможность потери соединения с сервером в этот момент. Для критичных серверов лучше оставить ручное управление перезагрузкой.
3. Очистка неиспользуемых зависимостей
Автоматически удаляет пакеты, которые больше не нужны. Экономит дисковое пространство.
4. Настройка уведомлений по электронной почте
Чтобы получать отчёты о применённых обновлениях или ошибках, укажите адрес электронной почты:
Также можно управлять детализацией отправки через параметр Unattended-Upgrade::MailReport:
-
«always» — отправлять письмо при каждом запуске, даже если обновлений не было.
-
«only-on-error» — уведомлять только в случае сбоя.
-
«on-change» — отправлять только если были реальные изменения (применены обновления или произведены какие-то действия). Это значение по умолчанию и наиболее сбалансированно для большинства систем.
Если вы выбрали уведомления, убедитесь, что на вашем сервере настроена отправка почты (например, через postfix или mailx). В противном случае письма никуда не уйдут, а в логах появится ошибка.
Настройка периодичности (systemd timers)
В современных версиях Ubuntu и Debian для запуска unattended-upgrades используются системные таймеры systemd:
-
apt-daily.timer — загрузка списков пакетов и новых версий.
-
apt-daily-upgrade.timer — непосредственно установка обновлений.
Посмотреть статус таймеров можно командой:
Интервалы выполнения рандомизированы, чтобы избежать одновременной нагрузки на зеркала. Обычно они заданы в диапазоне 6:00–7:00 утра. При необходимости частоту можно скорректировать, но для большинства случаев стандартные настройки оптимальны.
Тестирование работы
После внесения изменений в конфигурацию обязательно проверьте, всё ли работает корректно.
Сухой запуск (dry‑run)
Эта команда смоделирует процесс: покажет, какие пакеты могли бы быть обновлены, но реально их не установит. Если вы видите список пакетов, значит конфигурация верна и автоматические обновления будут применяться.
Проверка логов
Основные журналы находятся в /var/log/unattended-upgrades/:
В файле unattended-upgrades.log содержится история всех операций — какие пакеты были установлены и не возникло ли ошибок.
Дополнительную информацию можно получить из системного журнала:
Более тонкое управление
Отключение автоматического обновления для отдельных пакетов
Если некоторые пакеты вы хотите обновлять только вручную (например, базу данных или веб-сервер), добавьте их в чёрный список:
Также можно использовать регулярные выражения:
Ограничение: только определённые пакеты
Вместо чёрного списка можно использовать белый список. Раскомментируйте соответствующую секцию и перечислите пакеты, которые разрешено обновлять:
Графическая настройка (для десктопа)
Если вы используете Ubuntu с рабочим столом GNOME, можно настроить автоматическую установку обновлений через графический интерфейс.
-
Запустите Программы и обновления (update-manager) из терминала или меню.
-
Перейдите на вкладку Обновления.
-
В выпадающем списке Автоматически проверять обновления выберите Ежедневно.
-
Для параметра Когда есть обновления безопасности выберите Загружать и устанавливать автоматически.
Этот способ приведёт к тем же изменениям в конфигурационных файлах, что и ручная настройка через терминал.
Часто задаваемые вопросы (FAQ)
Нужно ли устанавливать apt-listchanges?
Необязательно, но полезно. Он отображает важную информацию об изменениях в пакетах, особенно на серверах. Если вы не хотите получать такие уведомления, этот пакет можно пропустить.
Почему после настройки ничего не обновляется автоматически?
Проверьте:
-
Значание Unattended-Upgrade «1» в файле 20auto-upgrades.
-
Указаны ли правильные Allowed-Origins в 50unattended-upgrades.
-
Запустите dry‑run для диагностики.
-
Посмотрите логи на наличие ошибок отправки почты или отсутствия интернета.
Как проверить, действительно ли работают автоматические обновления?
Запустите sudo unattended-upgrades —dry-run —debug. Если в выводе видите пакеты, которые были бы обновлены — всё работает.
Можно ли обновлять и обычные пакеты (не только security)?
Да, достаточно раскомментировать строку «${distro_id}:${distro_codename}-updates»; в секции Allowed-Origins. Однако для production-сред такая настройка обычно не рекомендуется из-за риска неожиданных изменений.
Что делать, если пакет не обновляется, хотя должен?
Причина может быть в чёрном списке (Package-Blacklist), в неправильной секции Allowed-Origins или в том, что обновление требует ручного вмешательства (например, изменения конфигурации). Изучите логи в /var/log/unattended-upgrades/ для деталей.
Заключение
Настройка unattended-upgrades — важный шаг к обеспечению безопасности и стабильности вашей системы. Благодаря этому инструменту вы сможете автоматически применять критические обновления, не отвлекаясь на рутинные операции.
Краткий чек-лист:
-
Установите пакет.
-
Включите автоматические обновления через dpkg-reconfigure или графический интерфейс.
-
Настройте нужные репозитории в 50unattended-upgrades.
-
При необходимости настройте уведомления по почте и автоматическую перезагрузку.
-
Проверьте работу через dry‑run и логи.
Автоматические обновления — это баланс между безопасностью и контролем. Правильно настроенный unattended-upgrades позволит вам не беспокоиться о критических уязвимостях, оставаясь в курсе всех изменений.
