Если я использую apt-get install -qq mono-devel
, я ожидаю, что это будет тихо, за исключением ошибок, согласно справке:
-qq No output except for errors
Вместо этого я получаю:
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.
и многое другое ...
Фактически, пара сотен строк стоит вывода. Это не совпадает с no output except for errors
.
Как мне на самом деле получить apt-get install
распечатать только тогда, когда есть ошибки, препятствующие его установке?
--quiet
опция не работает должным образом.Ответы:
Страница man для apt-get выглядит следующим образом:
-q
Или-qq
флаг должен прежде , чем команда, так как:apt-get -qq upgrade
источник
-q
абсолютно работает (без «анимированного» вывода), а также-qq
(без вывода без ошибок). Пожалуйста, проголосуйте!-qq
командой до установки я все еще получаю тонны мусора от чтения базы данных до распаковки и настройки сообщений.sudo apt-get -qq -y install mercurial
,sudo apt-get install -qq -y mercurial
,sudo apt-get -qq install -qq -y mercurial
и другие вариации , связанные с еще более д (хотя я не вижу какой - либо документации , которая предполагает , что это будет работать. Я бегу Debian Jessie на Google Cloud КСТАТИ (8). Я также попытался Гетц ответ, и это, кажется, не работает. Похоже, не работает, я имею в виду, я не замечаю разницыdpkg
, который вызываетсяapt-get
. Команда естьapt-get -qq update && apt-get -qq upgrade && apt-get -qq install build-essential
. См. Gist.github.com/stefanlasiewski/…&&
соединяя их (может работать, но это не «путь docker») (2) перенаправить вывод в / dev / null, как в другом ответе. Вариант 2, вероятно, ваш лучший выбор, когда есть эта ошибка.Простое перенаправление может сделать это. Я уверен, что это не совсем то, что вы имели в виду, но, черт возьми, это точно работает :)
Короче говоря, просто ударить
> /dev/null
в конце любой команды, где вы хотите перенаправить всеstdout
в пустоту. Вещи, выведенные наstderr
все равно будут отображаться в консоли.Нет мусора! И вот что происходит, если мы глупы и что-то сломаем:
источник
sudo
перед нимapt-get
. Вы бы простоsudo
при запуске сценария вместо этого.sudo apt-get upgrade -qq --force-yes > /dev/null
.-qq
подразумевает-y
, как сказал Вульфхарт, и--force-yes
заставляет его пахать практически во всем.stdout
(просмотр сообщений об ошибках является желательным для IMO).Мы столкнулись с той же проблемой.
apt-get install -qq
удаляет большую часть выходных данных, но раздражающее "(Чтение базы данных ..." по-прежнему сохраняется.Мы посмотрели на источник apt и обнаружили, что вывод производится dpkg, который был разветвлен apt. Затем источник dpkg показывает, что раздражающий soutput выдается только тогда, когда isatty (1) имеет значение true. Это только тот случай, когда вилка использует pty вместо pipe. Возвращаясь к apt, есть недокументированная переменная конфигурации, которая позволяет использовать трубу вместо pty, которая затем решает проблему:
Ожидая, что может помочь другим.
источник
-o=Dpkg::Use-Pty=0
Работал отлично на Ubuntu 18.04. Он показывает только одну «Чтение базы данных» вместо нескольких с обновлениями прогресса каждые 5%.Как вы можете видеть здесь и здесь,
вы можете сделать:
Или одна строка:
источник