システムマニュアルページが最も多いパッケージを探す

システムマニュアルページが最も多いパッケージを探す

システムのマニュアルページが最も多くインストールされているパッケージの名前を出力したいと思います。これを行うコマンドはありますか?

答え1

Debian ベースのシステムでは、最も多くのパッケージを入手してください。インストール済みマニュアルページ:

dpkg -S '/usr/share/man/*.gz' | cut -d: -f1 | sort | uniq -c | sort -rn | head -1 | awk '{print $2}'

最も利用可能なマニュアルページを含むパッケージを入手するには(インストールするかどうかにかかわらず):

apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | head -1 | awk '{print $2}'

私のシステムで利用可能なマニュアルページが最も多いパッケージはですlinux-manual-3.2

説明する

pkg一度に1つずつ作成するパイプラインを見てみましょう。

  • apt-file search /usr/share/man

    これにより、階層内のすべてのファイルのパッケージとファイル名が返されます/usr/share/man

  • cut -d: -f1

    これにより、リストのファイル名が削除され、パッケージのリストのみが残ります。

  • uniq -c

    これにより、各パッケージのマニュアルページ数が計算されます。 (通常使用する前にソートが必要uniq -cですが、apt-find一度に1パッケージずつ出力を生成する場合は、この手順は不要です。)

  • sort -rn

    これは、一番上のページが最も高いパッケージが一番上にあり、最も低いページが最も少ないパッケージが一番下になるように降順にソートされます。

  • head -1

    マンページが最も多い最初の行が選択されます。

  • awk '{print $2}'

    これにより、その行からパッケージ名が選択されます。

このパイプラインの一部だけを使用するのは興味深かったです。

apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | less

lessこれにより、マニュアルページの数に基づいて降順に並べられたパッケージのリストが表示されます。私のシステムでは、上位5つは次のとおりです。

   3453 linux-manual-3.2
   3384 liblapack-doc-man
   2350 freebsd-manpages
   1916 manpages-ja-dev
   1905 manpages-fr-dev

答え2

私のGentooボックスコマンドで

qfile /usr/share/man/*/* | awk '{print $1}' | sort | uniq -c | sort -n

与えられた

    864 sys-libs/ncurses
   1139 sys-apps/man-pages-posix
   1283 dev-libs/openssl
   2209 sys-apps/man-pages
   2246 x11-libs/libxcb

しかし、その後も含まれていますみんなわずかな**パターンヘルプを持つサブディレクトリ

qfile /usr/share/man/**/* | awk '{print $1}' | sort | uniq -c | sort -n

マニュアルページが勝ちます。

    933 sys-libs/ncurses
   1142 sys-apps/man-pages-posix
   1352 dev-libs/openssl
   2254 x11-libs/libxcb
   2310 sys-apps/man-pages

答え3

Debian / Ubuntu / Mintの代替...

$ cd /var/lib/dpkg/info && 
  grep -c '^/usr/share/man/.*/' *.list | sort -t: -k2rn | less -XF

私にしてください:

manpages-dev.list:1962
libssl-doc.list:1171
tcl8.6-doc.list:813
perl-doc.list:719
libdatetime-locale-perl.list:470
tcllib.list:407

答え4

このソリューションは動作します中央オペレーティングシステムそしてRHELマシン。

rpm -qf $(man -w $(compgen -ac)) | sort | uniq -c | sort -nr | head -1

システムで利用可能なすべてのコマンドのリストを生成するために使用できますcompgen -ac。これで、man -wこのコマンドのマニュアルページがわかります。

このマニュアルページを入力として使用すると、そのマニュアルページをrpm -qf含むパッケージが提供されます。次に、出力をソートし、発生の総数を見つけて、パッケージ名とそのパッケージに対応するマニュアルページ数を提供する最初の行を取得します。上記のコマンドを実行した後に得た結果は次のとおりです。

329 netpbm-progs-10.47.05-11.el6.x86_64

したがって、上記の出力には、パッケージが提供するコマンドのマニュアルページ項目が329個あり、netpbm-progs-10.47.05-11.el6.x86_64これは私のシステムで最も高い数値です。

引用する

https://www.kernel.org/doc/man-pages/man_pages_other.html

関連情報