Synapticでは、パッケージをセクションごとにリストできます。たとえば、下の画像には、「アマチュア無線(宇宙)」セクションのすべてのパッケージがリストされています。
コマンドラインでそのようなリストを取得するにはどうすればよいですか(編集:パッケージの説明付き)?
生のリストが必要です。のような端末アプリケーションaptitude
は行いません。
Synapticでは、パッケージをセクションごとにリストできます。たとえば、下の画像には、「アマチュア無線(宇宙)」セクションのすべてのパッケージがリストされています。
コマンドラインでそのようなリストを取得するにはどうすればよいですか(編集:パッケージの説明付き)?
生のリストが必要です。のような端末アプリケーションaptitude
は行いません。
回答:
さて、出力のために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
~r native
検索語に追加するだけです。~r
ビーイング?architecture
パッケージとのアーキテクチャと一致するnative
システムと同じアーキテクチャを持っているリストだけのものに相当しますdpkg --print-architecture
。ところで、パッケージの説明付きのリストが必要ですか?
aptitude-doc
パッケージをインストール/usr/share/doc/aptitude/html/en/index.html
してブラウザでナビゲートすると、file:///usr/share/doc/aptitude/html/en/ch02s04s05.html
すべての厄介な特典が見つかります。
dctrl-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 Radio」の代わりにセクション名が使用されます。
すべてのオプションの完全な説明といくつかの例については、grep-aptavailのマニュアルページを参照してください。
次の1行は、リポジトリセクションのすべての一意のパッケージ名とその説明を、それぞれ1行で出力します。すべてのフィールドはパイプ文字で区切られています。つまり、Markdownパイプテーブルに変換する準備ができています。結果のテーブルには、私のウェブサイトに掲載されています。
grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u