So wählen Sie eine Antwort für die interaktive Eingabeaufforderung während der Installation aus einem Shell-Skript aus

So wählen Sie eine Antwort für die interaktive Eingabeaufforderung während der Installation aus einem Shell-Skript aus

Ich schreibe ein Shell-Skript, um alle benötigten Anwendungen auf einmal auf meinem Ubuntu-PC zu installieren (während ich spazieren gehen oder etwas anderes tun kann). Bei den meisten Anwendungen hat es sich bewährt -y, am Ende der apt-get installAnweisung etwas hinzuzufügen, um die Notwendigkeit einer Benutzerbeteiligung zu vermeiden. Mein Skript sieht ungefähr so ​​aus:

#!/bin/bash
add-apt-repository ppa:webupd8team/sublime-text-3 -y
apt-get update -y
apt-get upgrade -y
apt-get install synaptic -y
apt-get install wireshark -y

Do you want to continue? [Y/n]Obwohl ich mir um oder keine Gedanken mehr machen muss Press [ENTER] to continue or ctrl-c to cancel adding it, liegt das Problem bei wireshark, das eine Antwort auf eine interaktive Eingabeaufforderung erfordert, wie unten gezeigt:

Wireshark-Eingabeaufforderung

Wie kann ich diesen Zwangseingriff vermeiden?

Antwort1

Konfigurieren Sie diedebconfDatenbank:

echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections

Installieren Sie dannWireshark:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark

Möglicherweise möchten Sie auch die Ausgabe vonapt-get. In diesem Fall:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark > /dev/null

Antwort2

Das apt/dpkg-System kann unbeaufsichtigte oder nicht interaktive Installationen durchführen.

Dazu müssen Sie die DEBIAN_FRONTENDVariable auf setzen noninteractiveund das Flag verwenden -y. Beispiel:

export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]

Wenn Fehlermeldungen auftreten, müssen Sie die qOption möglicherweise so einstellen, dass deutlicher erkennbar ist, dpkgdass es sich tatsächlich um eine nicht-interaktive Installation handelt: DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename].

In manchen Fällen ist es vielleicht einfacher, den Anweisungen für einige der Pakete zu folgen, die Sie später im selben Skript-/Shell-Prozess installieren. In diesem Fall sollten Sie den Export der DEBIAN_FRONTENDVariable rückgängig machen:

unset DEBIAN_FRONTEND

Für die Voreinstellung von Konfigurationsoptionen ist es nützlich debconf-utils, folgendes installiert zu haben debconf-get-selections:

sudo apt-get install debconf-utils

Ressourcen, die Sie möglicherweise nützlich finden

verwandte Informationen