
apt-get install -qq mono-devel
根據幫助,如果我使用,我希望除了錯誤之外它會很安靜:
-qq No output except for errors
相反,我得到:
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.
和更多的…
事實上,有幾百行的輸出。這似乎與 不匹配no output except for errors
。
我如何真正apt-get install
列印出來僅有的當出現錯誤導致無法安裝時?
答案1
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}}
-q
or標誌-qq
應該會消失前命令,像這樣:
apt-get -qq upgrade
答案2
我們面臨同樣的問題。apt-get install -qq
刪除了大部分輸出,但煩人的“(正在讀取資料庫...”仍然存在。
我們查看了 apt 的原始碼,發現輸出是由 apt 分叉的 dpkg 產生的。然後 dpkg 的來源表明,只有當 isatty(1) 為 true 時,才會發出煩人的 soutput。只有當 fork 使用 pty 而不是 pipeline 時才會發生這種情況。回到 apt,有一個未記錄的配置變量,允許使用 pipeline 代替 pty,從而解決問題:
apt-get install -qq -o=Dpkg::Use-Pty=0 <packages>
期望可以幫助別人。
答案3
一個簡單的重定向就可以做到這一點。我確信這不完全是你的想法,但它確實有效:)
簡而言之,只需敲擊> /dev/null
任何您想要將所有內容重定向到虛無的命令的末尾即可stdout
。輸出的內容stderr
仍然會顯示在控制台中。
$ sudo apt-get update > /dev/null
[sudo] password for oli:
$
沒有垃圾!如果我們愚蠢地破壞了某些東西,就會發生以下情況:
$ apt-get cheese > /dev/null
E: Invalid operation cheese
$
答案4
與apt-get -qq install -y PACKAGE 2> /dev/null
您一起可以:
- 僅顯示帶有 的錯誤
-qq
。 - 將錯誤傳送到
/dev/null
(不顯示),以便您可以安裝零輸出的套件。