Synapticでは、パッケージをセクションごとにリストできます。たとえば、下の画像には、「アマチュア無線(宇宙)」セクションのすべてのパッケージがリストされています。
コマンドラインでこのようなリストを取得するにはどうすればよいですか(編集:パッケージの説明付き)?
生のリストが必要です。 aptitude
のような端末アプリケーションは実行しません。
さて、出力のためにaptitudeを使いたくないと言いますが、あなたが好きなものを得るためにそれを修正できることを知っている必要があります:
aptitude -F'|%p|%d|' search '?section(hamradio)'
トリックは、出力形式を変更する-F
スイッチにあります。 %p
はパッケージを意味します。また、パッケージにさまざまなアーキテクチャ(AMD64とi386など)がある場合に出力され、説明を出力する%d
も出力します。たとえば、インストールされていないパッケージに対して、検索パターンをさらにパーソナライズできます。
aptitude -F'|%p|%d|' search '?section(hamradio) !~i'
~i
はインストール済みを意味し、!
はnotですので、「not(!)installed(〜i)」と読むか、アーキテクチャで利用できるものだけが必要な場合:
aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'
~r
は、パッケージのアーキテクチャに一致する?architecture()
であり、dpkg --print-architecture
と同等のシステムと同じアーキテクチャを持つもののみをリストするnative
です。
したがって、前の行は次のようにさらに簡潔に記述できます。
aptitude -F'|%p|%d|' search '~s hamradio ~r native'
dctrl-tools パッケージがインストールされています。 aptおよびdpkgパッケージリストを検索するための便利なコマンドを提供します。 aptでインストール可能な特定のセクションからすべてのパッケージの完全な説明を取得するには、実行します
grep-aptavail -F Section hamradio
これにより、hamradio
セクションにすべてのパッケージの完全なパッケージメタデータが表示されます。見たいのがパッケージ名だけなら、実行
grep-aptavail -n -F Section -s Package hamradio
システムがマルチアーチ用に設定されている場合、同じパッケージが複数のアーキテクチャ用に構築されていると、このリストに同じパッケージが複数回表示されることがあります。これをさらに改善するには、次のいずれかを使用します
grep-aptavail -n -F Section -s Package hamradio | sort | uniq
または
grep-aptavail -n -F Section -s Package hamradio | sort -u
パッケージリストをソートし、同じ名前の重複パッケージを削除します。
SynapticがGUIに表示する「人間が読める」名前とは異なるセクションの実際の名前を使用する必要があることに注意してください。たとえば、上記の検索では、Synapticに表示されている文字列「Amateur Radio」の代わりにセクション名hamradio
が使用されます。
すべてのオプションの完全な説明といくつかの例については、 grep-aptavail のmanページを参照してください。
次の1行は、リポジトリセクションのすべての一意のパッケージ名とその説明を、それぞれ1行で出力します。すべてのフィールドは、パイプ文字、つまり Markdown pipe table への変換の準備ができている。 結果テーブル は私のWebサイトで見つけることができます。
grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u
次のコマンドを使用して、特定のセクションに属するパッケージのリストを取得できます。
$ dpkg-query -W -f='${binary:Package} ${Section}\n' | awk '{if ($2 == "shells") {print $1}}'
bash
bash-completion
busybox-initramfs
busybox-static
dash
zsh
zsh-common