Antworten:
über die Manpage von apt-get :
apt-get -y install [packagename]
Das Problem mit:
apt-get --yes install $something
ist, dass eine manuelle Bestätigung angefordert wird, wenn der öffentliche Schlüssel des Paketunterschriftenbesitzers nicht im Schlüsselbund enthalten ist, oder wenn andere Bedingungen vorliegen. Um sicherzugehen, dass keine Bestätigung angefordert wird, gehen Sie wie folgt vor:
apt-get --yes --force-yes install $something
Wenn Sie diese Einstellungen dauerhaft beibehalten möchten, erstellen Sie eine Datei in /etc/apt/apt.conf.d/, z. B. /etc/apt/apt.conf.d/90forceyes, mit folgendem Inhalt:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
-y
wurden langweilig. (Außerdem ist es eine vollständigere Antwort.)
--force-yes
: Wie diese Antwort auf einen verwandten Thread aufdebian-devel
suggeriert, --force-yes
könnte das System unbrauchbar werden. (Ich stimme nicht ab, weil die Antwort tatsächlich das vom OP festgelegte Problem anspricht, aber ich würde der Antwort trotzdem eine
Beachten Sie, dass Sie Folgendes verwenden können, wenn Sie auch automatisch die Standardantworten verwenden möchten, wenn eine interaktive Eingabeaufforderung angezeigt wird DEBIAN_FRONTEND=noninteractive
Einzelinstallation:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Z.B:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Alle Updates:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
Mit und können Sie feinere Optionen einstellen .-o Dpkg::Options::="--force-confdef"
-o Dpkg::Options::="--force-confold"
Beispiele:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
oder
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Beispiel für eine interaktive Eingabeaufforderung:
Interessante Lektüre: Führen Sie eine unbeaufsichtigte Installation eines Debian-Pakets durch
-y
wurde ich immer noch gefragt, ob ich die Dienste neu starten möchte. Ich brauchte dies, um alle Eingabeaufforderungen vollständig zu beseitigen.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Dies sollte zumindest ein- /etc/apt/apt.conf
und auskommentiert sein. Ich mache mir Sorgen, dass Ubuntu immer um Erlaubnis bittet.
"Bist du dir sicher?", Natürlich bin ich mir sicher, ich bin kein ausgebildeter Affe, der einfach nur über die Tastatur tippt und mit einem Klick glücklich wird.
Als nächstes fragt die Tür: "Bist du sicher, dass du nach draußen gehen willst?"
Der Ofen fragt: "Möchten Sie wirklich kochen?"
Das Auto fragt: "Möchten Sie wirklich bremsen?"
Der Feuerlöscher fragt: "Möchten Sie das Feuer wirklich löschen?"
Es tut mir leid, Dave, das kann ich nicht zulassen.
HAL9000 könnte eine Kontraktion gebrauchen, Data jedoch nicht oder nicht.
Vom passenden HOWTO
Verwenden Sie den -y
Schalter:
apt-get -y install packagename
apt-get -y update
apt-get -y install [package]
update
braucht man eine Erlaubnis?
apt-get update
Befehl erfordert Root-Berechtigungen, da er die lokalen Paketlisten (Indizes) aktualisiert, bei denen es sich um Systemdateien handelt, deren Eigentümer root ist.
Im Allgemeinen sollten die Optionen aus dem Handbuch gut funktionieren
apt-get -y --force-yes install package
Wenn dies nicht gelingt, können Sie versuchen, den yes
Befehl zu verwenden.
yes | apt-get -y --force-yes install package
habe dies mit meinem vagrant shell provisioning script verwendet
PS: Falls Sie nicht interaktiv sein möchten, aber im Allgemeinen "Nein" angeben, können Sie Folgendes versuchen:
yes no | apt-get install package
Wenn Sie immer das Argument -y wollen, würde ich empfehlen, die Zeile hinzuzufügen
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
in deine .bashrc. Dies fügt, wie im Kommentar erläutert, automatisch das Argument -y zu all Ihren apt-get-Befehlen hinzu und genehmigt daher alle Downloads.
ANMERKUNG: Dies bleibt so lange wahr, bis Sie die .bashrc-Datei zurücksetzen und die Shell neu starten.
Ich suchte nach einer Möglichkeit, einen Nicht-Standard in einem Skript auszuwählen, insbesondere bei der Installation von wireshark, und benutzte schließlich tmux, um mit einer Shell zu interagieren, wie folgt:
# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach