Как сделать apt-get install менее шумным?

Если я использую 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, чтобы распечатать больше , если есть ошибки, связанные с его установкой?

1
задан 20 February 2013 в 20:38

2 ответа

Простое перенаправление может сделать это. Это не совсем то, что вы имели в виду, я уверен, но он уверен, что черт работает:)

Короче говоря, просто удалите > /dev/null в конце любой команды, в которой вы хотите перенаправить все stdout в ничто. Вещи, выводимые на stderr, будут отображаться на консоли.

$ sudo apt-get update > /dev/null
[sudo] password for oli: 
$ 

Нет мусора! И вот что происходит, если мы глупы и что-то сломаем:

$ apt-get cheese > /dev/null
E: Invalid operation cheese
$
47
ответ дан 25 May 2018 в 01:19
  • 1
    Это немного проблема, если вы получите подсказку ... – l0b0 19 February 2013 в 22:44
  • 2
    @ l0b0 Хм, да. Не знаю, как предлагать расщеплять подсказки, кроме как знать, когда их ожидать (изъятия и непроверенные пакеты являются единственными там, где есть IIRC). Или добавьте -y в микс (с осторожностью!) – Oli♦ 19 February 2013 в 22:53
  • 3
    OP был хорош с использованием -qq, что означает -y. Поэтому добавление -y или просто запуск его первоначального apt-get upgrade -qq & gt; / dev / null дают тот же результат – Wulfhart 20 February 2013 в 01:59
  • 4
    @Oli Если вы абсолютно уверены, что не собираетесь загорать вашу систему, вы всегда можете sudo apt-get upgrade -qq --force-yes > /dev/null. -qq подразумевает -y, как сказал WulfHart, и --force-yes заставляет его вспахивать практически что угодно. – JamesTheAwesomeDude 26 February 2013 в 19:46
  • 5
    @Vorac Нет, это просто перенаправление stdout (видимость ошибок - это желательная вещь IMO). – Oli♦ 27 March 2013 в 19:34

Мы столкнулись с той же проблемой. apt-get install -qq удаляет большую часть выходов, но раздражает «(база данных Чтения ...» по-прежнему сохраняется.

Мы посмотрели в источнике apt и обнаружили, что вывод производится dpkg, который был разветвлен apt. Затем источник dpkg показывает, что раздражающий soutput выдается только тогда, когда isatty (1) истинно. Это только тот случай, когда fork использует pty вместо pipe. Вернуться к apt, есть недокументированная конфигурация, которая позволяет использовать pipe вместо pty, который затем решает проблему:

apt-get install -qq -o=Dpkg::Use-Pty=0 <packages>

Ожидая, что это может помочь другим.

28
ответ дан 25 May 2018 в 01:19
  • 1
    На самом деле это полный правильный ответ. Это также позволяет запускать apt-get с одним -q и видеть некоторый вывод и не видеть раздражающую " Чтение базы данных " – valodzka 30 September 2015 в 23:26
  • 2
    @valodzka Какая версия ubuntu у вас? На CircleCI (с Ubuntu 14.04) он убегает читает (Reading database ... 625142 files and directories currently installed.). – koppor 23 January 2016 в 16:25
  • 3
    Я тестировал его на Debian 8 – valodzka 24 January 2016 в 11:11
  • 4
    Я пробовал это с Ubuntu 14.04 на основе Docker build, и это не работает для меня. – Cameron Taggart 10 March 2016 в 04:44
  • 5
    Я пробую это на gcloud debian jessie (8), и я все еще получаю чтение строк базы данных и распаковки / настройки строк. – CrazyCasta 21 June 2016 в 03:09

Другие вопросы по тегам:

Похожие вопросы: