Como faço para que o apt-get install seja menos barulhento?

Como faço para que o apt-get install seja menos barulhento?

Se eu usar apt-get install -qq mono-devel, espero que fique tranquilo exceto erros, conforme o help:

-qq No output except for errors

Em vez disso, recebo:

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.

emais...

Na verdade, algumas centenas de linhas de saída. Isso não parece corresponder a no output except for errors.

Como faço apt-get installpara imprimirapenasquando há erros que impedem a instalação?

Responder1

A página de manual do apt-get é a seguinte:

NAME
       apt-get - APT package handling utility -- command-line interface

SYNOPSIS
       apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file] [-t=target_release]
               [-a=architecture] {update | upgrade | dselect-upgrade | dist-upgrade |
               install pkg [{=pkg_version_number | /target_release}]...  | remove pkg...  |
               purge pkg...  | source pkg [{=pkg_version_number | /target_release}]...  |
               build-dep pkg [{=pkg_version_number | /target_release}]...  |
               download pkg [{=pkg_version_number | /target_release}]...  | check | clean |
               autoclean | autoremove | {-v | --version} | {-h | --help}}

A bandeira -qou -qqdeve iranteso comando, assim:

apt-get -qq upgrade

Responder2

Enfrentamos o mesmo problema. apt-get install -qqremove a maioria das saídas, mas o irritante "(Leitura do banco de dados ..." ainda persiste.

Demos uma olhada na fonte do apt e descobrimos que a saída é produzida pelo dpkg que foi bifurcado pelo apt. Então a fonte do dpkg mostra que a saída irritante só é emitida quando isatty(1) é verdadeiro. Este é apenas o caso quando o garfo usa pty em vez de tubo. De volta ao apt, existe uma variável de configuração não documentada que permite usar pipe em vez de pty, o que resolve o problema:

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

Esperar isso pode ajudar outras pessoas.

Responder3

Um simples redirecionamento poderia fazer isso. Não é exatamente o que você tinha em mente, tenho certeza, mas com certeza funciona :)

Resumindo, basta bater > /dev/nullno final de qualquer comando onde você deseja redirecionar tudo stdoutpara o nada. As coisas geradas stderrainda serão exibidas no console.

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

Sem lixo! E aqui está o que acontece se formos bobos e quebrarmos alguma coisa:

$ apt-get cheese > /dev/null
E: Invalid operation cheese
$

Responder4

Com apt-get -qq install -y PACKAGE 2> /dev/nullvocê pode:

  1. Mostre apenas os erros com -qq.
  2. Envie os erros para /dev/null(não mostrar) para que você possa instalar um pacote com saída zero.

informação relacionada