Ich habe folgendes gemacht:
ec2run ami-3c994355 --region us-east-1 -n 1 -t m1.large -z us-east-1d
Auf der Maschine:
sudo apt-get update
sudo apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Ich werde immer noch gefragt, welche Konfigurationsdatei ich verwenden möchte. Dies sind die Zeilen, die vor der Eingabeaufforderung stehen:
Setting up grub-pc (1.99-21ubuntu3.1) ...
dann:
┌───────────────────────────────────────────────────────┤ Configuring grub-pc ├───────────────────────────────────────────────────────┐
│ A new version of configuration file /etc/default/grub is available, but the version installed currently has been locally modified. │
│ │
│ What do you want to do about modified configuration file grub? │
│ │
│ install the package maintainer's version │
grub2
apt
amazon-ec2
fratrik
quelle
quelle
Antworten:
Die
/etc/default/grub
Datei wird bei der Installation des Pakets generiert. Dies ist erforderlich, da sie in debconf integriert ist. Dies bedeutet, dass es nicht als dpkg conf-Datei behandelt werden kann und daher die Konfigurationsdatei von dpkg nichts davon weiß.Stattdessen wird
ucf
ein ausgefeilteres Debian-Tool zur Verwaltung der Konfiguration verwendet. Dies versteht leider die dpkg-Optionen nicht, so dass die EinstellungDpkg::Options::="--force-confdef"
nicht hilft. Es gibt jedoch eine eigene Möglichkeit, Upgrades ohne Aufforderung über die UmgebungsvariablenUCF_FORCE_CONFFNEW
undUCF_FORCE_CONFFOLD
durchzuführen.ucf
Wirddebconf
für die Eingabeaufforderung verwendet. Wenn Sie also die debconf-Schnittstelle aufnoninteractive
einstellen , wird die Nachricht ebenfalls stummgeschaltet. Wenn Sie nicht interaktive Updates wirklich wollen, müssen Sie dies trotzdem tun - beliebige Pakete können debconf-Fragen stellen (obwohl dies bei Upgrades im Allgemeinen nicht der Fall ist).Sie können die debconf-Schnittstelle als einmalig festlegen, indem Sie sie
DEBIAN_FRONTEND=noninteractive
zu Ihrer Umgebung hinzufügen , oder sie dauerhaft festlegen, indemdpkg-reconfigure debconf
Sie das nicht interaktive Frontend ausführen und auswählen. Wenn Sie das nicht interaktive Frontend verwenden, erhalten Sie die Standardantwort auf alle Fragen, die ein Paket möglicherweise stellt.Für
ucf
lautet die Standardantwort "Behalte die vorhandene Datei".Der vollständige Befehl für ein wirklich 100% iges Update ohne Eingabeaufforderung wäre also.
¹: Es ist technisch möglich, dass Pakete eine andere Eingabeaufforderungsmethode als debconf verwenden, dies verstößt jedoch gegen die Debian-Richtlinie. Wenn Sie auf ein solches Paket stoßen, melden Sie einen Fehler.
quelle
Nachdem ich die Antwort von RAOF verworfen hatte und unzählige Stunden im Internet nach einem Update und einem Dist-Upgrade für Ubuntu 12.04 gesucht hatte, kam ich auf diese Idee, da dieser Beitrag ( https: // bugs .launchpad.net / ubuntu / + source / grub / + bug / 239674 / comments / 1 ) weist darauf hin, dass grub sich an UCF und nicht an Dpkg Options hält, wenn Sie das Paketverwalter-Menü grub menu.lst anstelle eines möglichen lokalen Menüs verwenden möchten .lst bearbeitet.
Ich habe die Dpkg Force-Confnew-Optionen für andere Pakete, die nicht Grub sind.
quelle
unattended-upgrades
eine Grub-Konfiguration und haben sie bearbeitet: Wie stellen Sie sieUCF_FORCE_CONFFNEW
in diesem Kontext ein? Oder müssten Sie grub von der Aktualisierung ausschließen?Die vorherigen Lösungen würden mit 16.04 nicht funktionieren. Dies funktioniert nach dieser Antwort beim Stapelüberlauf :
quelle
Ich habe in den letzten Tagen mit dem gleichen Problem unter Ubuntu 18.04 gerungen. Beim Starten einer neuen EC2-Instanz (insbesondere ami-00035f41c82244dab) führe ich ein automatisiertes Bereitstellungsskript aus (über die zum Zeitpunkt der Initialisierung bereitgestellte Benutzerdatenkonfiguration). Einer der ersten Schritte besteht darin, apt update / upgrade auszuführen.
Das Skript wird blockiert, während der Benutzer aufgefordert wird, geänderte GRUB-Dateien anzugeben - zuerst / etc / default / grub und dann /boot/grub/menu.lst. Da dies im unbeaufsichtigten Modus ausgeführt wird, wenn es als Benutzerdaten bereitgestellt wird, wird der Prozess angehalten und nie wiederhergestellt.
Vielem Googeln zufolge scheint es sich um ein seit langem bestehendes GRUB-Problem in der einen oder anderen Form zu handeln, bei dem Korrekturen vorgenommen wurden und sich letztere, soweit ich das beurteilen kann, wieder zurückbilden.
Letztendlich ist die einzige Problemumgehung, die ich erfolgreich anwenden konnte, der folgende hässliche Hack in meinem Bereitstellungsskript. Ich hoffe, es könnte jemand anderen aus der Klemme bringen!
Ich kann nur vermuten, dass das Problem, auf das ich gestoßen bin, sehr spezifisch für die derzeit verfügbare Ubuntu 18.04 AMI-Version ist und dass bei jeder aktualisierten Version, die neuere GRUB-Pakete enthält, möglicherweise nicht dasselbe Problem auftritt. Insbesondere ist
/etc/default/grub
es unwahrscheinlich, dass die Art der Änderungen für neuere AMI-Versionen gilt. Stell das einfach da raus.quelle
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" -qq --force-yes upgrade