dpkg-queryは、「rc」の代わりにインストールされたパッケージのみを表示します。

dpkg-queryは、「rc」の代わりにインストールされたパッケージのみを表示します。

私は以下を使用しています:

dpkg-query -W -f='${package}\t${version}\t${architecture}\n'

インストールされているパッケージが一覧表示されますが、削除対象としてマークされたパッケージ、つまり状態のあるパッケージも表示されますrc

インストールされたパッケージのみを入手するには?

答え1

dpkg-queryステータスフィルタリングはサポートされていませんが、パケットステータスを出力してフィルタリングできます。

dpkg-query -W -f='${Status}\t${package}\t${version}\t${architecture}\n' | grep "^install ok installed"

dpkg -l状態自体に基づいているため、dpkg-query状態自体をフィルタリングする方法はありません。

aptitudeより強力な検索オプションが利用可能で、これに使用できます。パターンに一致するインストール済みパッケージのリストを取得する正しい方法は何ですか?もっと学ぶ。次のコマンドは、インストールされているすべてのパッケージ(およびインストールされたパッケージのみ)のパッケージ名、バージョン、およびアーキテクチャを表示します。

aptitude search "~i" -F "%p%v#%E"

パッケージ名がシステムのデフォルトのアーキテクチャと一致しない場合、パッケージ名にアーキテクチャが含まれます。

zlib1g       1:1.2.11.dfsg-1  amd64
zlib1g:i386  1:1.2.11.dfsg-1  i386      

答え2

使用するコマンドはパッケージ、バージョン番号、およびアーキテクチャのみを指定し、状態に関係なくすべてを印刷します。

インストールされているパッケージのみを表示するには、次の手順を実行します。

dpkg --list | grep ^ii

ステータスは最初の列に表示され、これはインストールiiが期待されることを意味します。パイプラインはgrep ^iiこの状態のパッケージのみを表示します。

amd64 アーキテクチャ用のパッケージのみをインストールする場合:

dpkg --list | grep "^ii.*amd64"

iiこれにより、ステータスsumを含むパッケージのみが印刷されますamd64

同じ操作を実行するには、1列目と4列目の行のみをawk印刷します。iiamd64

dpkg --list | awk '$1=="ii" && $4=="amd64"'

関連情報