시스템 매뉴얼 페이지가 가장 많은 패키지 찾기

시스템 매뉴얼 페이지가 가장 많은 패키지 찾기

시스템 매뉴얼 페이지가 가장 많은 설치된 패키지의 이름을 출력하고 싶습니다. 이를 수행하는 명령이 있습니까?

답변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한 번에 한 단계씩 생성하는 파이프라인을 살펴보겠습니다.

  • apt-file search /usr/share/man

    그러면 계층 구조에 있는 모든 파일의 패키지와 파일 이름이 반환됩니다 /usr/share/man.

  • cut -d: -f1

    그러면 목록의 파일 이름이 제거되어 패키지 목록만 남게 됩니다.

  • uniq -c

    이는 각 패키지의 매뉴얼 페이지 수를 계산합니다. (일반적으로 사용하기 전에 정렬이 필요 uniq -c하지만 apt-find한 번에 한 패키지씩 출력을 생성하면 이 단계가 필요하지 않습니다.)

  • 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

내 젠투 박스 명령에서

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

데비안/우분투/민트의 대안...

$ 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

관련 정보