Wyłącz monity podczas instalowania pakietu Debian

22

Jak mogę całkowicie wyłączyć monity pojawiające się podczas instalowania pakietu Debian, skorzystałem ze wszystkich znalezionych opcji, ale niektóre pakiety wciąż się wyświetlają.

Używam tego polecenia:

apt-get -y --allow-unauthenticated --force-yes -o DPkg::Options::="--force-overwrite" -o DPkg::Options::="--force-confdef" install x11-common

Dlaczego wspólny pakiet x11 wciąż wyświetla monit? jak mogę pozbyć się tych podpowiedzi?

Z góry dziękuję

--Zwycięzca

Edycja: aby wyjaśnić, podpowiedzi nie są podpowiedziami „tak / nie”, są otwartymi pytaniami na kolorowym ekranie (typowy ekran dwukolorowy), ale chcę ustawić domyślną opcję tych pytań

victorgp
źródło

Odpowiedzi:

38

Wybierz nowy interfejs, ustawiając env.

DEBIAN_FRONTEND=noninteractive apt-get -y install x11-common

Cały czas używam tego do automatyzacji instalacji pakietów cfengine.

bahamat
źródło
+1 To jest poprawna odpowiedź
lynxman
W niektórych dziwnych przypadkach, np. Gdy musisz używać tego wewnątrz chroota nie interaktywnie, możesz go użyćDEBIAN_FRONTEND=noninteractive sudo -E chroot . echo "something"
mschuett,
8

Nie mając ręcznej instalacji x11-common, nie jestem pewien, jakie pytania są zadawane. Ale jeśli pochodzą z debconf, powinieneś być w stanie wstępnie odpowiedzieć na pytania debconf-set-selections.

Zoredache
źródło
To jest rozwiązanie, dzięki. Mam właściwości z debconf-get-selections i ustawiłem je wcześniej za pomocą debconf-set-selections i nie pojawiły się już żadne monity
victorgp
Nawet przy wybranych ustawieniach niektóre pakiety mogą nadal zadawać pytania w zależności od priorytetu. Ale zalecam ustawianie opcji tam, gdzie to możliwe. Ustawienie frontendu noninteractiveto magiczna flaga „nie pytaj mnie bez względu na wszystko”.
bahamat
4

Musisz to dpkg-reconfigure debconfpowiedzieć „Ignoruj ​​pytania o priorytecie mniejszym niż: Krytyczny”.

To nie wyciąga z ciebie odpowiedzi na kluczowe pytania.

DerfK
źródło
1

Aby globalnie wyłączyć monity o ponowną konfigurację wszystkich pakietów debconf, po prostu skomentuj drugą linię z /etc/apt/apt.conf.d/70debconfpliku.

Lub jeśli aprowizujesz maszynę wirtualną, dodaj te polecenia do skryptu udostępniania:

sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical

Możesz także spróbować w ten sam sposób, w jaki robi to Travis CI:

sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install some_package

W przypadku niektórych innych pakietów, takich jak ttf-mscorefonts-installer(od których zależy language-pack-en) powyższe wydaje się nie działać, więc spróbuj:

echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt-get install -y language-pack-en
kenorb
źródło
1
--force-yesjest BARDZO przerażającym i niezalecanym sposobem na przebicie się przez podpowiedzi. Nie zdziw się, jeśli pewnego dnia skończysz zepsutym i prawdopodobnie niemożliwym do odzyskania systemem.
dragon788