
Я пытался подавить интерактивный диалог относительно измененных файлов конфигурации и конфликтов. Я просмотрел все результаты поиска, и все продолжают копировать и вставлятьтот же точный ответбез предоставления дополнительного контекста.
Я пришел к решению поместить файл конфигурации, /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
использовать эту конфигурацию, интерактивный диалог останавливает мой автоматизированный скрипт.
Может ли кто-нибудь предоставить больше, чем просто копипаста, о том, почему эта конфигурация дает сбой? Почему эти настройки игнорируются?
Чтобы воспроизвести мою ситуацию:
- Создайте новый экземпляр Ubuntu 20.04 на Lightsail
- Добавить
/etc/apt/apt.conf.d/99confold
, содержащий указанные выше настройки - Изменить
/etc/cloud/cloud.cfg
каким-либо образом 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, эта настройка не подавит ее.