Ich versuche, ein nicht interaktives Systemaktualisierungsskript zu schreiben.
Frage:
Wenn Folgendes gut funktioniert:
yes | dpkg --configure -a
Funktioniert das Folgende auch sehr gut?:
yes | apt-get install --fix-broken
Antwort
Sie haben -y
oder --yes
oder --assume-yes
Parameter in apt-get
.
Versuchen Sie etwas wie
sudo apt-get install -y <package-name>
Details:
Die Handbuchseite von apt-get (Sie können auch auf die Handbuchseite mit dem Befehl man apt-get
verweisen):
-y, –yes, –assume-yes
Automatisches Ja zu Eingabeaufforderungen. Nehmen Sie „Ja“ als Antwort auf alle Eingabeaufforderungen an und führen Sie sie nicht interaktiv aus. Wenn eine unerwünschte Situation auftritt, z. B. das Ändern eines gehaltenen Pakets oder das Entfernen eines wesentlichen Pakets, wird apt-get abgebrochen. Konfigurationselement: APT :: Get :: Assume-Yes.
Im Gegensatz zu diesem Parameter haben Sie auch
–assume-no
Automatisches“ no „to alle Eingabeaufforderungen. Konfigurationselement: APT :: Get :: Assume-No.
Bearbeiten
Für Vlastimils Kommentar habe ich versucht
sudo apt-get install --fix-broken --assume-yes
Und es funktioniert. Die --fix-broken
Teil des Befehls kann durch -f
und --assume-yes
durch -y
oder --yes
zur Vereinfachung. Dadurch wird kein Paket speziell installiert, sondern „es können keine Pakete weggelassen werden, damit APT eine wahrscheinliche Lösung ableiten kann“, wie auf der Handbuchseite erwähnt .