Назад | Перейти на главную страницу

Автоматические обновления переопределяют разрешенное происхождение

Я пытаюсь установить Unattended-Upgrade::Allowed-Origins так что это разрешено только для обновлений безопасности. Я хотел бы сделать это в более поздней конфигурации в apt.conf.d оставив значение по умолчанию 50unattended-upgrades config по умолчанию и просто переопределяет.

В моем 99-unattended-upgrades Я устанавливаю следующее:

// Only allow security origin
Unattended-Upgrade::Allowed-Origins {
  "${distro_id}:${distro_codename}-security";
};

Однако, похоже, это слился с существующей конфигурацией (а не просто уничтожить ее полностью), как когда я apt-config dump Там я вижу настройки по умолчанию.

Я также пробовал установить его следующим образом:

Unattended-Upgrade::Allowed-Origins "${distro_id}:${distro_codename}-security";

Тоже не сработало.

я мог просто закомментируйте строки в 50unattended-updates, но я бы очень хотел оставить исходные файлы нетронутыми, если можно.

После небольшого покопания в исходном коде apt, а затем на странице руководства apt-conf оказывается, что есть способ

[...] # clear используется для удаления части дерева конфигурации. Указанный элемент и все его потомки будут удалены. (Обратите внимание, что эти строки также должны заканчиваться точкой с запятой.)

Команда #clear - единственный способ удалить список или всю область видимости. Повторное открытие области (или использование описанного ниже синтаксиса с добавленным: :) не отменяет ранее записанные записи. Параметры можно переопределить, только назначив им новое значение - списки и области нельзя переопределить, только очистить.

Итак, это даст вам то, что вы хотите:

#clear Unattended-Upgrade::Allowed-Origins;
// Only allow security origin
Unattended-Upgrade::Allowed-Origins {
  "${distro_id}:${distro_codename}-security";
};

https://manpages.debian.org/testing/apt/apt.conf.5.en.html