如何讓 apt-get install 的噪音更少?

如何讓 apt-get install 的噪音更少?

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

-qor標誌-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您一起可以:

  1. 僅顯示帶有 的錯誤-qq
  2. 將錯誤傳送到/dev/null(不顯示),以便您可以安裝零輸出的套件。

相關內容