Czy chcesz, aby apt-get (lub aptitude) działał z opcją -y, ale nie monitował o zamianę plików konfiguracyjnych?
Zrobiłem następujące:
ec2run ami-3c994355 --region us-east-1 -n 1 -t m1.large -z us-east-1d
Na maszynie:
sudo apt-get update
sudo apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Nadal pojawia się monit z pytaniem, którego pliku konfiguracyjnego chcę użyć. Oto linie poprzedzające monit:
Setting up grub-pc (1.99-21ubuntu3.1) ...
następnie:
┌───────────────────────────────────────────────────────┤ 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
źródło
źródło
Odpowiedzi:
/etc/default/grub
Plik jest generowany w czasie instalacji pakietu, który jest konieczny, ponieważ integruje się z debconf. Oznacza to, że nie można go traktować jako pliku conf dpkg, a więc obsługa plików konfiguracyjnych dpkg nie wie o tym.Zamiast tego wykorzystuje
ucf
bardziej wyrafinowane narzędzie Debiana do obsługi konfiguracji. To niestety nie rozumie opcji dpkg, więc ustawienieDpkg::Options::="--force-confdef"
nie pomoże. Ma jednak swój własny sposób dokonywania bezzwłocznych aktualizacji za pomocą zmiennych środowiskowychUCF_FORCE_CONFFNEW
iUCF_FORCE_CONFFOLD
.ucf
używadebconf
do monitowania, więc ustawienie interfejsu debconf nanoninteractive
również wyciszy wiadomość. Jeśli naprawdę chcesz aktualizacji nieinteraktywnych, i tak musisz to zrobić - dowolne pakiety mogą zadawać pytania debconf (chociaż zazwyczaj nie będą to robić podczas aktualizacji).Możesz ustawić interfejs debconf jako jednorazowy, dodając
DEBIAN_FRONTEND=noninteractive
do swojego środowiska, lub możesz ustawić go na stałe, uruchamiającdpkg-reconfigure debconf
i wybierając nieinteraktywną nakładkę. Jeśli używasz nieinteraktywnej nakładki, otrzymasz domyślną odpowiedź na wszelkie pytania, które może zadać pakiet.Dla
ucf
domyślna odpowiedź brzmi „zachować istniejący plik”.Tak więc pełne polecenie wykonania naprawdę, w 100% gwarantowanej¹ aktualizacji bez monitowania byłoby.
¹: Technicznie możliwe jest, aby pakiety używały innej metody monitowania niż debconf, ale jest to sprzeczne z polityką Debiana. Jeśli natrafisz na taki pakiet, zgłoś błąd.
źródło
wychodząc z odpowiedzi RAOF i po spędzeniu niezliczonych godzin na wyszukiwaniu w sieci, aby móc przeprowadzić całkowicie bezdotykową aktualizację i aktualizację na Ubuntu 12.04, wymyśliłem to dzięki temu, że ten post ( https: // błędy .launchpad.net / ubuntu / + source / grub / + bug / 239674 / comments / 1 ) zwraca uwagę, że grub jest zgodny z UCF, a nie z opcjami Dpkg, gdy chcesz używać menu grub. opiekunów pakietów zamiast menu lokalnego .lst edycje.
zostawiłem opcje Dpkg wymuszonego sprawdzenia dla innych pakietów, które nie są grub.
źródło
unattended-upgrades
i edytowałeś trochę konfiguracji gruba: jak ustawićUCF_FORCE_CONFFNEW
w tym kontekście? A może chcesz zaktualizować gruba na czarnej liście?Poprzednie rozwiązania nie działały z 16.04. Działa to z odpowiedzi na przepełnienie stosu :
źródło
W ostatnich dniach miałem problem z tym samym problemem na Ubuntu 18.04. Po uruchomieniu nowej instancji EC2 (w szczególności ami-00035f41c82244dab) uruchamiam skrypt automatycznego udostępniania (za pośrednictwem konfiguracji danych użytkownika dostarczonej w momencie inicjalizacji), której jednym z pierwszych kroków jest uruchomienie apt update / upgrade.
Skrypt jest blokowany, gdy użytkownik jest monitowany o zmodyfikowane pliki GRUB - najpierw / etc / default / grub, a następnie /boot/grub/menu.lst. Ponieważ działa on w trybie nienadzorowanym, gdy jest dostarczany jako Dane użytkownika, proces zatrzymuje się i nigdy nie odzyskuje.
Z wielu Googlingów wydaje się, że był to od dawna problem GRUB w takiej czy innej formie, z poprawkami, które zostały zastosowane, a następnie ponownie się cofnęły, o ile wiem.
Ostatecznie jedynym obejściem, które udało mi się zastosować z powodzeniem, jest następujący brzydki hack w moim skrypcie udostępniania. Mam nadzieję, że może to jednak wydostać kogoś z więzienia!
Mogę tylko założyć, że napotkany problem jest dość specyficzny dla aktualnie dostępnej wersji AMI Ubuntu 18.04, a każda zaktualizowana wersja zawierająca nowsze pakiety GRUB może nie podlegać temu samemu problemowi. W szczególności charakter zmian
/etc/default/grub
prawdopodobnie nie będzie miał zastosowania do nowszych wersji AMI. W każdym razie po prostu to tam zamieszczam.źródło
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" -qq --force-yes upgrade