Автообновления через dnf-automatic на Rocky / AlmaLinux 9

На серверах без постоянного контроля удобно ставить security-обновления автоматически. В RHEL-семействе для этого есть dnf-automatic: таймер systemd + конфиг, что качать и применять.

1. Установка

sudo dnf install -y dnf-automatic

2. Конфиг

Файл /etc/dnf/automatic.conf:

[commands]
upgrade_type = security
random_sleep = 300
network_online_timeout = 60
download_updates = yes
apply_updates = yes

[emitters]
emit_via = stdio

[email]
email_from = root@localhost
email_to = root
email_host = localhost
  • upgrade_type = security — только security-errata (реже ломает сервисы, чем default).
  • apply_updates = yes — ставить сразу; для осторожного режима поставьте no и оставляйте только скачивание.
  • Для почты настройте MTA или смените emit_via на то, что используете.

3. Таймер

systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

Проверка ближайшего запуска:

systemctl status dnf-automatic.timer --no-pager

Ручной прогон:

dnf-automatic /etc/dnf/automatic.conf --timer

4. Что учесть на домашнем сервере

  • Контейнеры Docker сами по себе пакетным менеджером не обновляются — обновляется хост.
  • После ядра может понадобиться reboot: смотрите needs-restarting -r (пакет dnf-utils / yum-utils).
  • Критичные сервисы (БД, Immich) лучше обновлять в окно, когда есть доступ к консоли.

5. Откат пакета (если что-то сломалось)

dnf history
dnf history undo <ID>

Замечания

  • Не включайте apply_updates = yes на проде без бэкапа и понимания зависимостей.
  • Для «только уведомлять» оставьте download_updates = yes и apply_updates = no.

Итог: security-патчи на Alma/Rocky 9 по расписанию без ручного dnf update каждый день.