2.3.4.3 Настройка оповещения и автоматического обновления пакетов в РЕД ОС 7.3
Скачать документ Настройка автоматического обновления
Настройка уведомлений пользователя через апплет dnfdragora-updater
Настройка автоматического обновления
В РЕД ОС 7.3 для оповещения/автоматического обновления пакетов используется dnf-automatic.
Устанавливаем dnf-automatic командой:
dnf install dnf-automatic
Затем настраиваем конфигурационный файл /etc/dnf/automatic.conf. По умолчанию dnf-automatic будет проверять наличие обновлений один раз в сутки и скачивать их в каталог /var/cache/dnf/. Конфигурационной файл для настройки автоматического обновления располагается по пути:
/etc/dnf/automatic.conf
Для того чтобы не только скачать, но и установить обновления, необходимо указать значение "yes" для следующих параметров в файле /etc/dnf/automatic.conf:
download_updates = yes apply_updates = yes
Параметр download_updates отвечает за загрузку обновлений (только загрузка, без установки).
Параметр apply_updates указывает, применять ли загруженные обновления или нет. По умолчанию установлено: «apply_updates = no», так как полностью доверять автоматическому обновлению не стоит. Для того, чтобы сработало значение «yes» — это же значение должно быть установлено и в download_updates, так как если обновления не загружены, то их неоткуда устанавливать.
Параметр random_sleep задает генерируемую случайным образом задержку в минутах, между временем запуска утилиты dnf-automatic и до её исполнения. Если значение random_sleep более 0, то каждый раз после запуска случайным образом выбирается задержка в интервале между 0 и заданным числом минут. Этот параметр служит для предотвращения ситуации, когда множество операционных систем одновременно будут пытаться получить обновление. По умолчанию установлено: random_sleep = 360 (360 минут = 6 часам).
- Установить плагин для dnf - versionlock командой:
dnf install python3-dnf-plugin-versionlock
- Добавить исключения для доступных пакетов, соответствующих спецификации, следующей командой:
dnf versionlock exclude <package_name>
Просмотреть список текущих записей блокировки версий можно с помощью команды:
dnf versionlock listили
dnf versionlock
Пример блокировки пакетов kernel-lt и php:
dnf versionlock exclude php kernel-lt Последняя проверка окончания срока действия метаданных: 0:53:11 назад, Пн 29 мар 2021 15:32:06. Добавление исключения на: kernel-lt-0:5.10.24-2.el7.* Добавление исключения на: kernel-lt-0:5.10.1-1.el7.* Добавление исключения на: php-0:7.4.11-2.el7.*
Чтобы удалить пакет из исключения, выполните следующую команду:
dnf versionlock delete <package_name>
Чтобы полностью очистить блокировку пакетов, выполните следующую команду:
dnf versionlock clear
Для отправки уведомлений о прошедших обновлениях на почту перейдите к блоку [email] в файле automatic.conf. Отредактируйте следующие параметры:
- email_from — отправитель сообщения;
- email_to — кому будут отправлены сообщения;
- email_host — имя хоста, к которому будет подключаться утилита, чтобы отправить сообщения.
В блоке [emitters] поменяйте параметр emit_via c stdio на email.
emit_via = stdio
Если emit_via будет пустым или None, то это аналогично параметру «update_messages = no», и в этом случае сообщения выводится не будут.
По умолчанию emit_via установлен в emit_via = stdin. В этом случае сообщения будут хранится по пути /var/spool/mail/<имя_пользователя>. Чтобы их просмотреть, используйте утилиту cat:
cat /var/spool/mail/<имя_пользователя>
Также в блоке [emitters] доступен параметр system_name. Он служит для записи названия системы, которое будет отображаться в сообщениях. По умолчанию system_name настроено так: system_name = None, это означает, что названием будет служить hostname операционной системы.
Далее нужно добавить соответствующий сервис в автозагрузку и запустить его. После этого обновления нужного типа будут устанавливаться в систему автоматически.
systemctl enable --now dnf-automatic.timer
Проверить статус таймеров можно командой:
systemctl list-timers *dnf-*
При более детальном изучении таймера, можно заметить, что автоматические обновления настроены на 6 утра каждого дня. Данные конфигурации отражены в файле /usr/lib/systemd/system/dnf-automatic.timer.
Содержимое файла по умолчанию:
[Unit] Description=dnf-automatic timer # See comment in dnf-makecache.service ConditionPathExists=!/run/ostree-booted Wants=network-online.target [Timer] OnCalendar=*-*-* 6:00 RandomizedDelaySec=60m Persistent=true [Install] WantedBy=timers.target
Чтобы задать свое время, требуется изменить строку:
OnCalendar=*-*-* 6:00
После применения изменений выполните команды перезапуска таймера:
systemctl daemon-reload systemctl restart dnf-automatic
Настройка уведомлений пользователя через апплет dnfdragora-updater
Для того чтобы установить данный апплет, требуется выполнить команду:
dnf install dnfdragora-updater
Предварительно, до использования данного апплета, требуется запустить dnfdragora (если это действие еще не совершалось после установки ОС) для создания кэша пакетов.
Запустить данный апплет можно из меню:
При получении обновления пользователь получит уведомление следующего вида:
Данный апплет имеет интуитивно понятное контекстное меню:
Дата последнего изменения: 03.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.