コマンドラインからリポジトリセクションのすべてのパッケージのリストを取得するにはどうすればよいですか?


13

Synapticでは、パッケージをセクションごとにリストできます。たとえば、下の画像には、「アマチュア無線(宇宙)」セクションのすべてのパッケージがリストされています。

コマンドラインでそのようなリストを取得するにはどうすればよいですか(編集:パッケージの説明付き)?

生のリストが必要です。のような端末アプリケーションaptitudeは行いません。

シナプス


apt-cache検索シェル
パンサー14年

@ bodhi.zazenそれは良い提案ですが、セクションのみを検索しません
スティーブンペニー14年

回答:


5

さて、出力のためにaptitudeを使いたくないと言いますが、あなたが好きなものを得るためにそれを修正できることを知っている必要があります:

aptitude -F'|%p|%d|' search '?section(hamradio)'

トリックは-F、出力形式を変更するスイッチにあります。%pパッケージを意味します。また、パッケージにさまざまなアーキテクチャ(amd64とi386など)がある場合に%dも出力され、説明が出力されます。たとえば、インストールされていないパッケージに対して、検索パターンをさらにパーソナライズできます。

aptitude -F'|%p|%d|' search '?section(hamradio) !~i'

where ~iはインストールされていることを意味!します。したがって、「not(!)installed(〜i)」と表示されるか、アーキテクチャで使用可能なもののみが必要な場合は、次のようになります。

aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'

~rビーイング?architecture()パッケージとのアーキテクチャと一致するnativeシステムと同じアーキテクチャを有するリストだけのものに相当しますdpkg --print-architecture

したがって、前の行は次のようにさらに簡潔に記述できます。

aptitude -F'|%p|%d|' search '~s hamradio ~r native'

特にエレガント-F'|%p|%d|'です。ただし、文字列に-expressionを:i386追加してパッケージをリストしないことは可能ですか?!search
セルジュStroobandt

1
@GinGordonええ、~r native検索語に追加するだけです。~rビーイング?architectureパッケージとのアーキテクチャと一致するnativeシステムと同じアーキテクチャを持っているリストだけのものに相当しますdpkg --print-architecture。ところで、パッケージの説明付きのリストが必要ですか?
ブライアム

すごい!はい、質問を編集してパッケージの説明を含めました。それに応じて回答を編集してください。あなたは当然、最も簡潔であるために私の最高の回答票を受け取ります。
セルジュStroobandt

@GinGordonでチェックしてください。
ブライアム

1
@GinGordon aptitude-docパッケージをインストール/usr/share/doc/aptitude/html/en/index.htmlしてブラウザでナビゲートすると、file:///usr/share/doc/aptitude/html/en/ch02s04s05.htmlすべての厄介な特典が見つかります。
Braiam

11

dctrl-toolsdctrl-toolsをインストールしますパッケージがインストールされていることを確認してください。aptおよびdpkgパッケージリストを検索するための便利なコマンドを提供します。aptでイ​​ンストール可能な特定のセクションからすべてのパッケージの完全な説明を取得するには、実行します

grep-aptavail -F Section hamradio

これにより、hamradioセクション内のすべてのパッケージの完全なパッケージメタデータが表示されます。見たいのがパッケージ名だけなら、実行

grep-aptavail -n -F Section -s Package hamradio

システムがmultiarch用に設定されている場合、複数のアーキテクチャ用に構築されていると、同じパッケージがこのリストに複数回表示されることがあります。これをさらに改良するには、次のいずれかを使用します

grep-aptavail -n -F Section -s Package hamradio | sort | uniq

または

grep-aptavail -n -F Section -s Package hamradio | sort -u

パッケージリストをソートし、同じ名前の重複パッケージを削除します。

SynapticがGUIに表示する「人間が読める」名前とは異なるセクションの実際の名前を使用する必要があることに注意してください。たとえば、上記の検索hamradioでは、Synapticに表示される文字列「Amateur Ra​​dio」の代わりにセクション名が使用されます。

すべてのオプションの完全な説明といくつかの例については、grep-aptavailのマニュアルページを参照してください。


3

任意の区切り記号を使用した、1行の追加フィールド

次の1行は、リポジトリセクションのすべての一意のパッケージ名とその説明を、それぞれ1行で出力します。すべてのフィールドはパイプ文字で区切られています。つまり、Markdownパイプテーブルに変換する準備ができています結果のテーブルには、私のウェブサイトに掲載されています。

grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u

2

次のコマンドを使用して、特定のセクションに属するパッケージのリストを取得できます。

$ 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.