dpkg-query -lは削除されたパッケージを表示しますが、dpkg-query -l "pattern"はそのパッケージを見つけることができません。なぜですか?

dpkg-query -lは削除されたパッケージを表示しますが、dpkg-query -l "pattern"はそのパッケージを見つけることができません。なぜですか?

いくつかのパッケージのいくつかのi386バージョンを削除しました。私が実行している場合:

dpkg-query --list | grep ":i386"

私はそれらがリストされているのを見ます。しかし、以下を実行すると:

dpkg-query ---list "*:i386"

私はそれらを見たことがなく、--show助けを提供したこともありません--list

dpkg-query自体を使用してすべてのパッケージを検索することはできませんか?

答え1

dpkg-query --listパッケージ名にシェル glob スタイルのパターン「package-name-pattern」を使用することが文書化されています。アーキテクチャ(:i386ビット)はパッケージ名の一部ではないため、パッケージ名パターンは一致しません。

ただし、これを行うには(またはgrep-dctrlなどのエイリアス)を使用できます。まだインストールしていない場合はインストールする必要があります。grep-statusgrep-availabledctrl-tools

grep-status -sPackage --not -FStatus installed --and -FArchitecture i386

あなたが探しているものと同様のことをすることもできます。ステータスフィールドが「インストール済み」と一致せず、アーキテクチャフィールドが「i386」に一致するエントリをステータスファイルで検索します。

削除されたが消去されていないi386パッケージを探している場合は、次のことを試すことができます。

grep-status -sPackage -FStatus config-files --and -FArchitecture i386

または(今は推測していますが)i386パッケージをインストールしてください:

grep-status -sPackage -FStatus installed --and -FArchitecture i386

すべてのgrep-dctrlバリアントには、検索するターゲットとそれを出力するフィールドを正確に指定するためのさまざまなオプションがあります。grep-dctrl マンページ詳細があります。

関連情報