
Si uso apt-get install -qq mono-devel
, espero que esté silencioso excepto por errores, según la ayuda:
-qq No output except for errors
En lugar de eso obtengo:
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.
ymás...
De hecho, un par de cientos de líneas de salida. Esto no parece coincidir con no output except for errors
.
¿Cómo puedo realmente apt-get install
imprimir?solo¿Cuándo hay errores que impiden la instalación?
Respuesta1
La página de manual de apt-get es la siguiente:
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}}
La bandera -q
o -qq
debería irantesel comando, así:
apt-get -qq upgrade
Respuesta2
Nos enfrentamos al mismo problema. apt-get install -qq
elimina la mayoría de los resultados, pero el molesto "(Leyendo base de datos ..." aún persiste.
Echamos un vistazo a la fuente de apt y descubrimos que la salida es producida por dpkg que fue bifurcado por apt. Entonces la fuente de dpkg muestra que la molesta salida solo se emite cuando isatty(1) es verdadero. Este es solo el caso cuando la bifurcación usa pty en lugar de tubería. Volviendo a apt, hay una variable de configuración no documentada que permite usar pipe en lugar de pty, lo que luego resuelve el problema:
apt-get install -qq -o=Dpkg::Use-Pty=0 <packages>
Esperar que eso pueda ayudar a otros.
Respuesta3
Una simple redirección podría hacer esto. No es exactamente lo que tenías en mente, estoy seguro, pero seguro que funciona :)
En resumen, simplemente golpea > /dev/null
el final de cualquier comando donde quieras redirigir todo stdout
a la nada. Las cosas generadas stderr
aún se mostrarán en la consola.
$ sudo apt-get update > /dev/null
[sudo] password for oli:
$
¡Sin basura! Y esto es lo que pasa si somos tontos y rompemos algo:
$ apt-get cheese > /dev/null
E: Invalid operation cheese
$
Respuesta4
Con apt-get -qq install -y PACKAGE 2> /dev/null
usted puede:
- Mostrar sólo los errores con
-qq
. - Envíe los errores a
/dev/null
(no mostrar) para que pueda instalar un paquete con salida cero.