
Ich habe versucht, einen interaktiven Dialog in Bezug auf geänderte Konfigurationsdateien und Konflikte zu unterdrücken. Ich habe alle Suchergebnisse durchgesehen und jeder kopiert und fügt eindie gleiche genaue Antwortohne zusätzlichen Kontext bereitzustellen.
Ich bin bei der Lösung gelandet, eine Konfigurationsdatei einzufügen, /etc/apt/apt.conf.d
die das gut kopierte und eingefügte Element enthält:
Dpkg::Options {
"--force-confdef";
"--force-confold";
}
Ich habe eingeschlossen APT::Get::Assume-Yes "true";
undDasfunktioniert absolut. Ich habe damit bestätigt, apt-config
dass dieDpkg::Options
Sindwird geladen. Aber jedes Mal, wenn ich es DEBIAN_FRONTEND=noninteractive sudo apt upgrade
mit dieser Konfiguration versuche, stoppt der interaktive Dialog mein automatisiertes Skript.
Könnte jemand mehr als nur Copypasta liefern, warum diese Konfiguration fehlschlägt? Warum sollten diese Einstellungen ignoriert werden?
Um meine missliche Lage wiederzugeben:
- Erstellen Sie eine neue Ubuntu 20.04-Instance auf Lightsail
- Fügen Sie
/etc/apt/apt.conf.d/99confold
die oben aufgeführten Einstellungen hinzu /etc/cloud/cloud.cfg
In irgendeiner Weise ändernsudo apt update
Dannsudo apt upgrade
Gegen Ende der Updates wird weiterhin der Konfliktdialog angezeigt.
Antwort1
Es gibt einige Gründe, warum die Dpkg::Options-Einstellung, die Sie in Ihrer Datei /etc/apt/apt.conf.d angegeben haben, möglicherweise ignoriert wird:
Möglicherweise verwenden Sie eine Version von apt, die die Einstellung Dpkg::Options nicht unterstützt. Die Einstellung Dpkg::Options wurde in apt Version 1.1.0 eingeführt. Wenn Sie also eine ältere Version verwenden, wird diese Einstellung ignoriert.
Die Einstellung Dpkg::Options kann durch eine Einstellung in einer anderen Konfigurationsdatei überschrieben werden. apt liest Konfigurationsdateien von mehreren Standorten und Einstellungen in späteren Dateien können frühere überschreiben. Wenn Sie beispielsweise eine Datei /etc/apt/apt.conf.d/99force-confold haben, die die Zeile Dpkg::Options {"--force-confnew"}; enthält, überschreibt diese Einstellung die Einstellung --force-confold, die Sie in Ihrer früheren Konfigurationsdatei angegeben haben.
Die Einstellung Dpkg::Options gilt möglicherweise nicht für das spezifische Paket oder den Vorgang, den Sie ausführen. Die Einstellung Dpkg::Options beeinflusst, wie dpkg Konfigurationsdateien beim Installieren oder Aktualisieren von Paketen behandelt, gilt jedoch möglicherweise nicht für andere Vorgänge wie das Entfernen von Paketen oder das Aktualisieren des Paketcaches.
Wenn Sie eine aktuelle Version von apt verwenden und die Einstellung Dpkg::Options nicht durch eine andere Konfigurationsdatei überschrieben wird, ist es möglich, dass die Option --force-confold für den Vorgang, den Sie ausführen möchten, nicht anwendbar ist. Sie können stattdessen versuchen, die Option --force-confdef anzugeben, die dpkg zwingt, die Standardversion aller geänderten Konfigurationsdateien zu verwenden.
Beachten Sie auch, dass die Einstellung DEBIAN_FRONTEND=noninteractive nicht alle interaktiven Eingabeaufforderungen bei Verwendung von apt unterdrückt. Sie unterdrückt nur Eingabeaufforderungen, die speziell mit dem Debconf-System in Zusammenhang stehen, das verwendet wird, um während der Installation bestimmter Pakete Fragen zu stellen und Konfigurationsoptionen festzulegen. Wenn Sie eine interaktive Eingabeaufforderung sehen, die nicht mit Debconf in Zusammenhang steht, wird diese durch diese Einstellung nicht unterdrückt.