Come faccio a rendere l'installazione di apt-get meno rumorosa?

105

Se utilizzo apt-get install -qq mono-devel , mi aspetto che sia tranquillo tranne che per gli errori, secondo l'aiuto:

-qq No output except for errors

Invece ho:

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.

e più ...

In effetti, un paio di centinaia di righe vale la pena di uscita. Questo non sembra corrispondere a no output except for errors .

Come faccio a ottenere effettivamente apt-get install per stampare solo quando ci sono errori che impediscono l'installazione?

    
posta jbtule 19.02.2013 - 14:48

3 risposte

62

La pagina man di apt-get è la seguente:

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

Il flag -q o -qq dovrebbe andare prima del comando, in questo modo:

apt-get -qq upgrade

    
risposta data Mike 27.04.2015 - 22:37
49

Un semplice reindirizzamento potrebbe farlo. Non è esattamente quello che avevi in ​​mente, ne sono sicuro, ma sicuramente funziona così:)

In breve, basta colpire > /dev/null alla fine di qualsiasi comando in cui desideri reindirizzare tutto stdout nel nulla. Le cose emesse in stderr verranno comunque visualizzate nella console.

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

Niente spazzatura! Ed ecco cosa succede se siamo stupidi e rompiamo qualcosa:

$ apt-get cheese > /dev/null
E: Invalid operation cheese
$
    
risposta data Oli 19.02.2013 - 15:18
32

Abbiamo affrontato lo stesso problema. apt-get install -qq rimuove la maggior parte degli output ma fastidioso "(Reading database ..." persiste ancora.

Abbiamo dato un'occhiata alla fonte di apt e abbiamo scoperto che l'output è prodotto da dpkg che è stato biforcato da apt. Quindi la fonte di dpkg mostra che il fastidioso soutput viene emesso solo quando isatty (1) è true. Questo è solo il caso in cui la forcella usa pty invece pipe. Tornando ad apt, c'è una variabile di configurazione non documentata che permette di usare pipe invece pty che poi risolve il problema:

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

Aspettarsi che possa aiutare gli altri.

    
risposta data Philippe Goetz 03.09.2015 - 16:11

Leggi altre domande sui tag