書式
dpkg-query [option...] command説明
dpkg-query は、dpkg データベースに格納されたパッケージの情報を表示するツールである。コマンド
- -l, --list [package-name-pattern...]
-
指定したパターンにマッチする名前のパッケージを表示する。 package-name-pattern
が指定されなかった場合は、not-installed とマークされているもの (完全削除されているパッケージなど)
を除き、/var/lib/dpkg/status にある、すべてのパッケージを表示する。package-name-pattern
には、標準的なシェルのワイルドカード文字を使用することができる。ただし、シェルにファイル名の展開をさせないように、package-name-pattern
をクオートする必要があることに注意。例えば次のコマンドは、``libc6'' で始まる名前のすべてのパッケージを表示する:
dpkg-query -l 'libc6*'
出力の先頭から 3 つのカラムは、順に期待される動作 (desired action)、パッケージの状況、エラー状態を示す。
期待される動作
u = Unknown i = Install h = Hold r = Remove p = Purge
パッケージの状況:
n = Not-installed c = Config-files H = Half-installed U = Unpacked F = Half-configured W = Triggers-awaiting t = Triggers-pending i = Installed
エラーフラグ:
<empty> = (none) R = 要再インストール
大文字はエラーを示すものであり、パッケージに致命的な問題が発生していることを示す。上記の状態についての詳細は dpkg(1) を参照のこと。
この出力形式は変更できないが、端末の横幅に合わせて自動的に調整される。これは人間が目視することを想定したものであり、コンピュータに適した形式ではない。出力形式の設定方法については、-W (--show) および --showformat を参照のこと。
- -W, --show [package-name-pattern...]
- --list オプションと同様に、指定したパターンにマッチするすべてのパッケージを表示する。このオプションの出力は、 --showformat オプションによってカスタマイズすることができる。デフォルトの出力形式は、マッチしたパッケージごとに、(Multi-Arch が same のパッケージ用のアーキテクチャ修飾子によって拡張された) パッケージ名とバージョンがタブで区切られた 1 行で表示される。
- -s, --status package-name...
- 指定したパッケージの状況を表示する。実際は、インストールされたパッケージの状況データベースの内容が表示される。package-name が複数指定された場合、各パッケージは引数のリストで指定された順に、パッケージ間を空行で区切って表示される。
- -L, --listfiles package-name...
- package-name がインストールしたファイルを一覧する。package-name が複数指定された場合、各パッケージは引数のリストで指定された順に、パッケージ間を空行で区切って表示される。パッケージ付属のインストールスクリプトによって作成されたファイルは含まれないことに注意。
- --control-list package-name
- package-name がシステムにインストールした制御ファイルを一覧する。これは、--control-show の引数として用いることができる。
- --control-show package-name control-file
- package-name がシステムにインストールした control-file を標準出力に出力する。
- -c, --control-path package-name [control-file]
- package-name がシステムにインストールした制御ファイルのパスを表示する。control-file が指定された場合は、該当の制御ファイルが存在している場合に限り、その制御ファイルのパスだけを表示する。警告: このコマンドは廃止予定である。--control-list や --control-show の使用に切り替えてほしい。
- -S, --search filename-search-pattern...
- 指定したパターンにマッチするファイルをインストールしたパッケージを検索する。パターンには、標準的なシェルのすべてのワイルドカード文字を使用することができる。このコマンドでは、メンテナスクリプトで作成された追加ファイルや、 alternative は検索することができない。
- -p, --print-avail package-name...
-
/var/lib/dpkg/available にある package-name の詳細を表示する。package-name
が複数指定された場合、各 available のエントリは、引数のリストで指定された順に、エントリ間を空行で区切って表示される。
available ファイルには、dselect を用いた際の更新情報しか保持されていないため、APT ベースのフロントエンドを使っているユーザは、apt-cache show package-name を代わりに使用すべきである。
- -?, --help
- 利用方法を表示して終了する。
- --version
- バージョン情報を表示して終了する。
オプション
- --admindir=dir
- dpkg データベースの位置を変更する。デフォルトの位置は /var/lib/dpkg である。
- --load-avail
- --show および --list コマンドを用いた際に利用可能なファイルもロードする。これらのコマンドはデフォルトではステータスファイルのみを検索対象とする。
- -f, --showformat=format
-
このオプションは、--show の出力の書式を指定するものである。書式は、一覧表示される各パッケージの出力を制御する文字列である。
フォーマット文字列中の "\" はエスケープ文字である:
\n 改行 \r 復帰 (キャリッジリターン) \t タブ
任意の文字の前に "\" を配置することで、これに続く文字の特殊な意味を抑制できる。これは "\" や "$" に有用である。
パッケージ情報には、"${field[;width]}" という構文で、パッケージフィールドを参照する変数を含めることができる。各フィールドは右寄せで表示されるが、width に負の値を指定すると左寄せになる。以下の field が認識されるが、これらはステータスファイルに存在している必要はない (内部フィールドやバイナリパッケージに格納されたフィールドの形で最終的に存在していればよい)。
Architecture Bugs Conffiles (内部フィールド) Config-Version (内部フィールド) Conflicts Breaks Depends Description Enhances Essential Filename (内部フィールド, フロントエンド関連) Homepage Installed-Size MD5sum (内部フィールド, フロントエンド関連) MSDOS-Filename (内部フィールド, フロントエンド関連) Maintainer Origin Package Pre-Depends Priority Provides Recommends Replaces Revision (obsolete) Section Size (内部フィールド, フロントエンド関連) Source Status (内部フィールド) Suggests Tag (通常 .deb パッケージではなく、リポジトリの Packages ファイルに存在する) Triggers-Awaited (内部フィールド) Triggers-Pending (内部フィールド) Version
以下は dpkg-query が別のフィールドの値から生成した仮想的なフィールドである (これらのフィールド名は、制御ファイルにおける適切な命名規則に従っていない点に留意)。
binary:Package binary:Summary db:Status-Abbrev source:Package source:Version
デフォルトのフォーマット文字列は "${binary:Package}\t${Version}\n" である。実際には、ステータスファイルに含まれる他のすべてのフィールド (ユーザ定義フィールド) も指定することができ、これらはそのまま表示される。変換やエラーチェックは行われない。binary:Package は、パッケージの Multi-Arch フィールドが same となっているため、名前だけでは曖昧になってしまうパッケージについて、パッケージ名をアーキテクチャ修飾子 ("libc6:amd64" のような) 付きで表示する特殊なフィールドである。dpkg のメンテナとインストールされているバージョンを取得するには、以下を実行する:
dpkg-query -W -f='${binary:Package} ${Version}\t${Maintainer}\n' dpkg
終了ステータス
- 0
- リクエストされたクエリが正しく実行された。
- 1
- コマンドラインの解析中もしくはクエリの実行中に問題が発生した。これには(--control-path を除き) ファイルやパッケージが存在しなかった場合も含まれる。
環境変数
- DPKG_ADMINDIR
- --admindir オプションが設定されておらず、この変数が設定されている場合、この変数の値が dpkg データディレクトリとして用いられる。
- COLUMNS
- この設定により、--list オプションによる出力の横幅が設定される。