Kubuntuを使用しています。システムにインストールされているパッケージのリストを取得したいのですが、特に、カテゴリフィルタータブのMuon Package Managerに表示されるように、カテゴリ別に並べ替えてもらいたいのです。視覚的な参考のために、次の画像のウィンドウの左側にあります。
Muonの内部から、[ファイル]メニューにインストールされているパッケージのリストをエクスポートするオプションがありますが、プレーンリストをエクスポートするだけで(dpkg --get-selections
コマンドを実行すると思います)、それは私が探しているものではありません。
dpkg
、dpkg-query
、apt
、およびapt-get
のマニュアルページを調べようとしましたが、役立つ情報が見つかりませんでした。
私が得た唯一の手がかりは、dpkg-query
のマニュアルに、いくつかのコマンドオプションを使用して出力を並べ替えることができると記載されていることですが、カテゴリで並べ替える方法が見つかりません。
どんな手掛かり?
実際、これはdpkg-query
と他のいくつかのツールを使用して行うことができます。
dpkg-query -Wf='${package}\t${Section}\t${status}\n' | grep installed |
gawk '{print $2"\t"$1}' | sort
説明:
dpkg-query -Wf='${package}\t${section}\t${status}\n'
:このコマンドは、すべてのパッケージ(-W
)をpackage name
<TAB> package section
<TAB> package status
として一覧表示します。 dpkg-query
のマニュアルページから:
-f, --showformat=format
This option is used to specify the format of the output --show
will produce. The format is a string that will be output for each package
listed.
したがって、このコマンドだけで次のような出力が生成されます。
$ dpkg-query -Wf='${package}\t${Section}\t${status}\n' | head
a2ps text install ok installed
abiword editors install ok installed
abiword-common editors install ok installed
abiword-plugin-grammar editors install ok installed
abiword-plugin-mathview editors install ok installed
accountsservice admin install ok installed
acl utils install ok installed
acpi utils install ok installed
acpi-support-base admin install ok installed
acpid admin install ok installed
grep installed
:ステータスがinstalled
のパッケージを説明する行のみを選択します。
gawk '{print $2"\t"$1}'
:gawkを使用して、関心のある2つのフィールド(パッケージ名とセクション)のみを印刷し、出力を読みやすく並べ替えやすくするために、最初にセクションを印刷し、次にパッケージ名を印刷します。
sort
:セクションが最初のフィールドになっているため、パッケージをセクションで並べ替えるには、単純なsort
で十分です。
最終的な出力は次のようになります。
admin accountsservice
admin aptdaemon-data
editors libreoffice-impress
fonts fonts-telu
games enemylines3
games enemylines7
gnome cinnamon
libdevel libxmu-dev
libs libapt-pkg4.12
oldlibs hpijs
python python-gi-cairo