Вопрос или проблема
Я пытаюсь понять, как добавить все мои установленные пакеты в Package-Blacklist
в Unattended-Upgrade
, Ubuntu.
Я уже пробовал *
, но это не работает. Я получил ошибку.
Unattended-Upgrade::Package-Blacklist {
"*";
};
Я просто хочу, чтобы мой сервер выполнял только автоматические обновления безопасности.
Нашел сам.
Unattended-Upgrade::Package-Blacklist {
"";
};
Пустая строка (""
) будет работать так же, как *
.
Это использует регулярные выражения Python:
Регулярные выражения Python, соответствующие пакетам, исключаемым из обновления
Поэтому, чтобы быть более явным, лучше использовать ".+"
, что будет соответствовать /^.+/
.
.
Ответ или решение
В задачи по настройке автоматических обновлений на Ubuntu, важным моментом является правильная настройка списка пакетов, которые не должны обновляться автоматически. Система Unattended-Upgrade
предоставляет возможность сконфигурировать так называемый Package-Blacklist
– перечень пакетов, которые исключаются из автоматического обновления. Это может быть полезно, если вы хотите, чтобы ваша система обновляла только критически важные обновления безопасности, оставляя остальные пакеты нетронутыми. Давайте рассмотрим, как можно настроить этот функционал более тщательно и корректно.
Теория
Unattended-Upgrade
позволяет администратору управлять автоматическим процессом обновления пакетов. В стандартной конфигурации администратор может выбрать, какие именно обновления системы должны устанавливаться автоматически. Для этого используется файл конфигурации, обычно расположенный по пути /etc/apt/apt.conf.d/50unattended-upgrades
.
Основной целью настройки черного списка пакетов является предотвращение их автоматического обновления. Это особенно полезно для серверов и критически важных систем, где стабильность важнее, чем наличие самых последних функций. Чтобы это осуществить, вы можете добавить пакеты в секцию Package-Blacklist
.
Практический пример
В вашей ситуации вы пытаетесь добавить все установленные пакеты в Package-Blacklist
. Ваша цель – избежать автоматических обновлений всех пакетов, за исключением обновлений безопасности. Основная проблема заключается в правильном использовании регулярных выражений, которые поддерживаются в данном контексте.
Использование символа *
, как представлено в вашем первоначальном варианте, вызовет ошибку, поскольку это регулярное выражение не является корректным для данного случая и не соответствует всем пакетам должным образом. Чтобы исключить все пакеты от обновления, вам нужно использовать более подходящее регулярное выражение.
Реализация
Шаг 1: Откройте файл конфигурации
Откройте терминал и выполните следующую команду, чтобы отредактировать конфигурационный файл:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Шаг 2: Настройте Package-Blacklist
Внутри данного файла найдите секцию, относящуюся к Package-Blacklist
, и измените её следующим образом:
Unattended-Upgrade::Package-Blacklist {
".+";
};
Регулярное выражение ".+"
означает, что будут соответствовать все пакеты, так как .+
соответствует любой непустой строке.
Шаг 3: Сохраните и выйдите
Сохраните изменения и выйдите из редактора, нажав CTRL + O
для сохранения, затем CTRL + X
для выхода.
Шаг 4: Проверьте конфигурацию
После изменения конфигурации рекомендуется протестировать её работу. Вы можете выполнить симулированный запуск unattended-upgrades
, чтобы убедиться, что изменение работает как ожидается:
sudo unattended-upgrade -d -v --dry-run
Флаг --dry-run
указывает системе не выполнять фактические обновления, но вывести детальную информацию о том, какие действия были бы предприняты.
Заключение
Вы внесли изменения в конфигурацию Unattended-Upgrade
, чтобы предотвратить автоматическое обновление всех пакетов. Это полезный подход, если ваша цель — обеспечить стабильность системы, минимизируя вмешательства в устанавливаемые пакеты. Регулярное выражение ".+"
позволяет обеспечить нужный функционал, будучи корректным и соответствуя всем пакетам.
При внедрении подобных изменений всегда старайтесь выполнить резервное копирование вашей конфигурации и внимательно тестируйте применённые изменения в безопасной среде. Таким образом, вы сможете избежать потенциальных проблем, связанных с несовместимыми обновлениями или изменениями в критических компонентах системы.