Jeśli używam apt-get install -qq mono-devel
, oczekuję, że będzie cicho, z wyjątkiem błędów, zgodnie z pomocą:
-qq No output except for errors
Zamiast tego otrzymuję:
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.
i więcej ...
W rzeczywistości wartość wyjściowa to kilkaset linii. To nie wydaje się pasować do no output except for errors
.
Jak mogę apt-get install
wydrukować tylko wtedy, gdy wystąpią błędy uniemożliwiające instalację?
--quiet
opcji, która wydaje się nie działać poprawnie.Odpowiedzi:
Strona podręcznika dla apt-get jest następująca:
-q
Lub-qq
flaga powinna iść przed poleceniem, tak jak poniżej:apt-get -qq upgrade
źródło
-q
absolutnie działa (bez wyjścia „animowanego”), a także-qq
(bez wyjścia z wyjątkiem błędów). Proszę głosować!-qq
przed poleceniem instalacji wciąż mam mnóstwo śmieci, od czytania bazy danych po rozpakowywanie i konfigurowanie wiadomości.sudo apt-get -qq -y install mercurial
,sudo apt-get install -qq -y mercurial
,sudo apt-get -qq install -qq -y mercurial
i inne warianty obejmujące nawet więcej znaków q (choć nie widzę żadnej dokumentacji, która sugeruje, to będzie działać. Używam Debiana Jessie na Google Cloud btw (8). Próbowałem zostały również na Goetz odpowiedź i wydaje się, że też nie działa. Przez wydaje się, że nie działa, to znaczy nie zauważam różnicydpkg
, co jest wywoływane przezapt-get
. Poleceniem jestapt-get -qq update && apt-get -qq upgrade && apt-get -qq install build-essential
. Zobacz gist.github.com/stefanlasiewski/…&&
łącząc się z nimi (może działać, ale to nie jest „sposób dokera”) (2) przekieruj wyjście do / dev / null, jak w drugiej odpowiedzi. Opcja 2 jest prawdopodobnie najlepszym wyborem, gdy występuje ten błąd.Może to zrobić proste przekierowanie. Nie jestem dokładnie tym, o czym myślałeś, ale jestem pewien, że działa jak diabli :)
Krótko mówiąc, po prostu uderz
> /dev/null
na końcu dowolnego polecenia, w którym chcesz przekierować wszystkostdout
w nicość. Rzeczystderr
wyświetlane na ekranie będą nadal wyświetlane w konsoli.Bez śmieci! A oto co się stanie, jeśli będziemy głupi i coś złamiemy:
źródło
sudo
przedapt-get
. Zrobiłbyś tosudo
po prostu podczas uruchamiania skryptu.sudo apt-get upgrade -qq --force-yes > /dev/null
.-qq
implikuje-y
, jak powiedział WulfHart, i--force-yes
sprawia, że przebija prawie wszystko.stdout
(zauważenie błędów jest pożądaną rzeczą IMO).Napotkaliśmy ten sam problem.
apt-get install -qq
usuwa większość danych wyjściowych, ale irytujące „(Odczytywanie bazy danych ...” nadal występuje).Przyjrzeliśmy się źródłu apt i odkryliśmy, że dane wyjściowe są generowane przez dpkg, który został rozwidlony przez apt. Następnie źródło dpkg pokazuje, że irytujące soutput jest wydawane tylko wtedy, gdy isatty (1) jest prawdziwe. Dzieje się tak tylko wtedy, gdy widelec używa pty zamiast rury. Wracając do apt, istnieje nieudokumentowana zmienna konfiguracyjna, która pozwala na użycie potoku zamiast pty, który następnie rozwiązuje problem:
Oczekiwanie, że może to pomóc innym.
źródło
-o=Dpkg::Use-Pty=0
Pracował idealnie na Ubuntu 18.04. Pokazuje tylko jedną „Czytanie bazy danych” zamiast wielu z aktualizacjami postępu co 5%.Jak widać tutaj i tutaj,
możesz:
Lub jedna linia:
źródło