Почему Dpkg::Options --force-confold игнорируется?

Почему Dpkg::Options --force-confold игнорируется?

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

Я пришел к решению поместить файл конфигурации, /etc/apt/apt.conf.dсодержащий хорошо скопированный и вставленный элемент:

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}

Я включил APT::Get::Assume-Yes "true";иэтотабсолютно работает. Я подтвердил, apt-configчтоDpkg::Options являютсязагружается. Но каждый раз, когда я пытаюсь DEBIAN_FRONTEND=noninteractive sudo apt upgradeиспользовать эту конфигурацию, интерактивный диалог останавливает мой автоматизированный скрипт.

Может ли кто-нибудь предоставить больше, чем просто копипаста, о том, почему эта конфигурация дает сбой? Почему эти настройки игнорируются?


Чтобы воспроизвести мою ситуацию:

  1. Создайте новый экземпляр Ubuntu 20.04 на Lightsail
  2. Добавить /etc/apt/apt.conf.d/99confold, содержащий указанные выше настройки
  3. Изменить /etc/cloud/cloud.cfgкаким-либо образом
  4. sudo apt updateзатемsudo apt upgrade

Диалоговое окно конфликта по-прежнему появляется ближе к концу обновлений.

решение1

Существует несколько причин, по которым параметр Dpkg::Options, указанный вами в файле /etc/apt/apt.conf.d, может быть проигнорирован:

Возможно, вы используете версию apt, которая не поддерживает настройку Dpkg::Options. Настройка Dpkg::Options была введена в apt версии 1.1.0, поэтому если вы используете более старую версию, эта настройка будет проигнорирована.

Параметр Dpkg::Options может быть переопределен параметром в другом файле конфигурации. apt считывает файлы конфигурации из нескольких мест, и параметры в более поздних файлах могут переопределять более ранние. Например, если у вас есть файл /etc/apt/apt.conf.d/99force-confold, содержащий строку Dpkg::Options {"--force-confnew"};, этот параметр переопределит параметр --force-confold, указанный вами в более раннем файле конфигурации.

Параметр Dpkg::Options может не применяться к конкретному пакету или операции, которую вы выполняете. Параметр Dpkg::Options влияет на то, как dpkg обрабатывает файлы конфигурации при установке или обновлении пакетов, но он может не применяться к другим операциям, таким как удаление пакетов или обновление кэша пакетов.

Если вы используете последнюю версию apt и настройка Dpkg::Options не переопределяется другим файлом конфигурации, возможно, что параметр --force-confold неприменим к операции, которую вы пытаетесь выполнить. Вы можете попробовать указать вместо него параметр --force-confdef, который заставит dpkg использовать версию по умолчанию любых измененных файлов конфигурации.

Также стоит отметить, что параметр DEBIAN_FRONTEND=noninteractive не подавляет все интерактивные подсказки при использовании apt. Он подавляет только те подсказки, которые конкретно связаны с системой debconf, которая используется для того, чтобы задавать вопросы и задавать параметры конфигурации во время установки определенных пакетов. Если вы видите интерактивную подсказку, которая не связана с debconf, эта настройка не подавит ее.

Связанный контент