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

またはフラグ-q-qq前にコマンドは次のようになります:

apt-get -qq upgrade

答え2

私たちも同じ問題に直面しました。apt-get install -qq出力のほとんどが削除されましたが、迷惑な「(データベースを読み込んでいます...」がまだ残っています。

apt のソースを調べたところ、出力は apt によってフォークされた dpkg によって生成されたものであることがわかりました。次に、dpkg のソースを見ると、厄介な soutput は isatty(1) が true の場合にのみ発行されることがわかります。これは、フォークがパイプではなく pty を使用する場合にのみ発生します。apt に戻ると、pty ではなくパイプを使用できるようにする、文書化されていない構成変数があり、これにより問題が解決します。

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

それを期待することは他の人を助けることができます。

答え3

単純なリダイレクトでこれを実現できます。これはまさにあなたが考えていたものとは違いますが、確実に機能します :)

つまり、すべてを空に> /dev/nullリダイレクトしたいコマンドの末尾に を追加するだけです。 出力されたものはコンソールに引き続き表示されます。stdoutstderr

$ 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(not show) に送信すると、出力なしでパッケージをインストールできます。

関連情報