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 install
Anweisung 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:
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_FRONTEND
Variable auf setzen noninteractive
und das Flag verwenden -y
. Beispiel:
export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]
Wenn Fehlermeldungen auftreten, müssen Sie die q
Option möglicherweise so einstellen, dass deutlicher erkennbar ist, dpkg
dass 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_FRONTEND
Variable 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