如果我使用apt-get install -qq mono-devel
,我希望它是安静的,除了错误,根据帮助:
-qq No output except for errors
Run Code Online (Sandbox Code Playgroud)
相反,我得到:
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.
Run Code Online (Sandbox Code Playgroud)
还有更多...
事实上,有几百行的输出。这似乎与no output except for errors
.
仅当出现阻止安装的错误时,我如何才能真正apt-get install
打印出来?
Mik*_*ike 102
apt-get 的手册页如下:
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}}
Run Code Online (Sandbox Code Playgroud)
该-q
或-qq
标志应该去之前的命令,就像这样:
apt-get -qq upgrade
小智 76
我们遇到了同样的问题。apt-get install -qq
删除了大部分输出,但烦人的“(读取数据库...”仍然存在。
我们查看了 apt 的源代码,发现输出是由 apt 分叉的 dpkg 产生的。然后dpkg的源码显示,恼人的soutput只有在isatty(1)为true时才会发出。只有当 fork 使用 pty 代替管道时才会出现这种情况。回到apt,有一个未记录的配置变量允许使用管道代替pty,然后解决问题:
apt-get install -qq -o=Dpkg::Use-Pty=0 <packages>
Run Code Online (Sandbox Code Playgroud)
期待这可以帮助他人。
Oli*_*Oli 60
一个简单的重定向就可以做到这一点。我敢肯定,这并不完全是您的想法,但它确实有效:)
简而言之,只需> /dev/null
在您想要将所有内容重定向stdout
到虚无的任何命令的末尾重击即可。输出的内容stderr
仍将显示在控制台中。
$ sudo apt-get update > /dev/null
[sudo] password for oli:
$
Run Code Online (Sandbox Code Playgroud)
没有垃圾!如果我们很愚蠢并破坏了某些东西,会发生以下情况:
$ apt-get cheese > /dev/null
E: Invalid operation cheese
$
Run Code Online (Sandbox Code Playgroud)
小智 6
export DEBIAN_FRONTEND=noninteractive
apt-get -yq install [packagename]
export DEBIAN_FRONTEND=dialog
Run Code Online (Sandbox Code Playgroud)
或者一行:
DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
105152 次 |
最近记录: |