Comment rendre apt-get install moins bruyant?

105

Si j'utilise apt-get install -qq mono-devel , je m'attends à ce qu'il soit silencieux, à l'exception des erreurs, selon l'aide:

-qq No output except for errors

Au lieu de cela, je reçois:

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.

et plus ...

En fait, quelques centaines de lignes de sortie. Cela ne semble pas correspondre avec no output except for errors .

Comment puis-je obtenir que apt-get install imprime uniquement en cas d’erreurs empêchant son installation?

    
posée jbtule 19.02.2013 - 14:48
la source

3 réponses

62

La page de manuel pour apt-get est la suivante:

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}}

L’indicateur -q ou -qq devrait aller avant la commande, comme ceci:

apt-get -qq upgrade

    
réponse donnée Mike 27.04.2015 - 22:37
la source
49

Une simple redirection pourrait le faire. Ce n'est pas exactement ce que vous aviez en tête, j'en suis sûr, mais c'est sûr que ça marche:)

En bref, il suffit de frapper > /dev/null à la fin de toute commande où vous souhaitez rediriger tous les stdout dans le néant. Les choses produites sur stderr seront toujours affichées dans la console.

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

Pas de bazar! Et voici ce qui arrive si nous sommes stupides et brisons quelque chose:

$ apt-get cheese > /dev/null
E: Invalid operation cheese
$
    
réponse donnée Oli 19.02.2013 - 15:18
la source
30

Nous avons rencontré le même problème. apt-get install -qq supprime la plupart des sorties mais est agaçant "(lecture de la base de données ..." persiste.

Nous avons examiné la source d’apt et avons découvert que la sortie est produite par dpkg, qui a été créé par apt. La source de dpkg montre alors que le soutput ennuyeux n'est émis que lorsque isatty (1) est vrai. Ce n'est le cas que lorsque la fourche utilise pty à la place. Retour à apt, il y a une variable de configuration non documentée qui permet d'utiliser pipe à la place de pty qui résout alors le problème:

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

En espérant que cela puisse aider les autres.

    
réponse donnée Philippe Goetz 03.09.2015 - 16:11
la source

Lire d'autres questions sur les étiquettes