Wenn ich es benutze apt-get install -qq mono-devel
, erwarte ich laut Hilfe, dass es ruhig ist, mit Ausnahme von Fehlern:
-qq No output except for errors
Stattdessen bekomme ich:
Extracting templates from packages: 100%
Selecting previously unselected package binfmt-support.
(Reading database ... 84711 files and directories currently installed.)
Unpacking binfmt-support (from .../binfmt-support_2.0.8_i386.deb) ...
Selecting previously unselected package cli-common.
Unpacking cli-common (from .../cli-common_0.8.2_all.deb) ...
Selecting previously unselected package libgdiplus.
Unpacking libgdiplus (from .../libgdiplus_2.10-3_i386.deb) ...
Selecting previously unselected package libmono-2.0-1.
Unpacking libmono-2.0-1 (from .../libmono-2.0-1_2.10.8.1-1ubuntu2.2_i386.deb) ...
Selecting previously unselected package libmono-2.0-dev.
Unpacking libmono-2.0-dev (from .../libmono-2.0-dev_2.10.8.1-1ubuntu2.2_i386.deb) ...
Selecting previously unselected package libmono-corlib4.0-cil.
Unpacking libmono-corlib4.0-cil (from .../libmono-corlib4.0-cil_2.10.8.1-1ubuntu2.2_all.deb) ...
Selecting previously unselected package libmono-system-xml4.0-cil.
Unpacking libmono-system-xml4.0-cil (from .../libmono-system-xml4.
und mehr ...
Tatsächlich werden ein paar hundert Zeilen ausgegeben. Dies scheint nicht mit übereinzustimmen no output except for errors
.
Wie kann ich nur dann apt-get install
drucken, wenn Fehler auftreten, die die Installation verhindern?
--quiet
hinweist, dass die Option anscheinend nicht richtig funktioniert.Antworten:
Die Manpage für apt-get lautet wie folgt:
Das
-q
oder-qq
Flag sollte vor dem Befehl stehen, wie folgt:apt-get -qq upgrade
quelle
-q
funktioniert absolut (keine "animierte" Ausgabe) sowie-qq
(keine Ausgabe außer Fehlern). Bitte stimme zu!-qq
vor dem Installationsbefehl bekomme ich noch jede Menge Müll, vom Lesen der Datenbank bis zum Entpacken und Einrichten von Nachrichten.sudo apt-get -qq -y install mercurial
,sudo apt-get install -qq -y mercurial
,sudo apt-get -qq install -qq -y mercurial
und andere Variationen die noch mehr Qs (obwohl ich alle Unterlagen nicht sehen , dass dies legt nahe , funktionieren würde. Ich bin mit Debian Jessie auf Google Cloud btw (8). Ich habe auch versucht Goetz Antwort und es scheint auch nicht zu funktionieren. Von scheint nicht zu funktionieren Ich meine, ichdpkg
, was von angerufen wirdapt-get
. Der Befehl lautetapt-get -qq update && apt-get -qq upgrade && apt-get -qq install build-essential
. Siehe gist.github.com/stefanlasiewski/…&&
verknüpfen (funktioniert möglicherweise, ist aber nicht der "Docker-Weg"). (2) Leiten Sie die Ausgabe wie in der anderen Antwort nach / dev / null um. Option 2 ist wahrscheinlich die beste Wahl, wenn dieser Fehler vorliegt.Eine einfache Umleitung könnte dies tun. Es ist nicht genau das, was du im Sinn hattest, ich bin sicher, aber es funktioniert verdammt sicher :)
Kurz gesagt, schlagen Sie einfach
> /dev/null
am Ende eines Befehls ein, bei dem Sie allesstdout
ins Nichts umleiten möchten . Dinge, die auf ausgegeben werden,stderr
werden weiterhin in der Konsole angezeigt.Kein Müll! Und hier ist, was passiert, wenn wir dumm sind und etwas kaputt machen:
quelle
sudo
davor stellenapt-get
. Sie würden nursudo
beim Ausführen des Skripts statt.sudo apt-get upgrade -qq --force-yes > /dev/null
.-qq
impliziert-y
, wie WulfHart sagte, und--force-yes
lässt es so gut wie alles durchpflügen.stdout
(es ist wünschenswert, die Fehler zu sehen, IMO).Wir standen vor dem gleichen Problem.
apt-get install -qq
entfernt die meisten Ausgaben, aber "(Datenbank wird gelesen ..." bleibt weiterhin bestehen.Wir haben uns die Quelle von apt angesehen und festgestellt, dass die Ausgabe von dpkg stammt, das von apt gespalten wurde. Dann zeigt die Quelle von dpkg, dass die lästige Ausgabe nur erfolgt, wenn isatty (1) wahr ist. Dies ist nur der Fall, wenn die Gabel pty anstelle von pipe verwendet. Zurück zu apt gibt es eine undokumentierte Konfigurationsvariable, die es erlaubt, anstelle von pty pipe zu verwenden, um das Problem zu lösen:
Das zu erwarten kann anderen helfen.
quelle
-o=Dpkg::Use-Pty=0
hat auf Ubuntu 18.04 perfekt geklappt. Es wird nur eine "Lesedatenbank" anstelle mehrerer Datenbanken mit Fortschrittsaktualisierungen alle 5% angezeigt.Wie Sie hier und hier
sehen können, können Sie Folgendes tun:
Oder eine Zeile:
quelle