맨 페이지가없는 설치된 바이너리 패키지를 찾는 방법이 있습니까?


13

나는 최근에 https://lintian.debian.org/tags/binary-without-manpage.html을 보았고 누락 된 약 14k 맨 페이지를 보여줍니다.

이는 라이브러리가 아닌 일부 바이너리 패키지에 누락 된 맨 페이지가있을 가능성이 높다는 것을 의미합니다. 맨 페이지가없는 설치된 바이너리 패키지 / 응용 프로그램 (라이브러리가 아님) 목록을 얻으려면 어떻게해야합니까? 나는 일부를 알고 그것에 약간 기여하기 시작합니다.

답변:


16

manpage-alert명령을 통해 매뉴얼 페이지없이 모든 바이너리를 나열 할 수 있습니다

manpage-alert - check for binaries without corresponding manpages

DESCRIPTION

   manpage-alert  searches the given list of paths for binaries without cor‐
   responding manpages.

   If no paths are specified on the command line, the path list  /bin  /sbin
   /usr/bin /usr/sbin /usr/games will be assumed

2
그것이 devscript 패키지의 일부라는 것을 몰랐습니다.
shirish


4

허용 된 답변 덕분에 패키지의 manpage-alert일부인 utility의 존재에 대해 배우는 것이 흥미 롭습니다 devscripts. 실제로는 쉘 스크립트입니다.

설치를 시도했지만 devscripts약 70MB의 종속성을 설치하라는 메시지가 표시되어 건너 뛰었습니다.

devscriptsdeb 패키지 ( apt download devscripts)를 다운로드하고, deb를 추출하고 manpage-alert스크립트를 면밀히 살펴보면 "경고 아래"라는 전체 이야기는이 경고 스크립트가 다음 명령을 실행한다는 것입니다.

man -w -S 1:8:6 <file> (w = show location -S 1 : 8 : 6은 섹션 1,8 및 6에서 사람 검색을 제한합니다).

이 작업은 재귀 적 디렉토리 아래의 모든 파일에서 수행되는 /bin, /sbin, /usr/bin, /usr/sbin,와 /usr/games.

또한, 리디렉션 man2>&1또한 리디렉션 >/dev/null파일이 아무것도 인쇄되지 않습니다 유효한 man 페이지 위치가있는 경우,하지만 경우 man에 "아니오 수동 입력"에 대한 불만이 메시지가 인쇄됩니다.
작성자는 "도움이 필요하면 설명서 7 설명서를 참조하십시오"메시지에서 오류 메시지를 manpage-alert추가로 제거 man하고 첫 번째 줄만 유지합니다 = No manual entry for xxxx.

결과적으로, 다음 몇 줄은 devscripts 패키지를 설치하지 않고 바이너리 페이지가없는 유사한 바이너리 페이지를 제공합니다.

F=( "/bin/*" "/sbin/*" "/usr/bin/*" "/usr/sbin/*" "/usr/games/*" )
for f in ${F[@]};do 
  for ff in $f;do
    if ! mp=$(man -w -S 1:8:6 "${ff##*/}" 2>&1 >/dev/null);then 
       echo "$mp" |grep -v "man 7 undocumented" #man 7 undocumented is printed in a separate line.
    fi
  done
done

추신 : ${ff##*/}경로 제거에만 명령 이름 유지 /usr/bin/하거나 /bin/또는 무엇이든을

위는 또한 하나의 라이너로 실행될 수 있습니다.

gv@debi64:$ F=( "/bin/*" "/sbin/*" "/usr/bin/*" "/usr/sbin/*" "/usr/games/*" );for f in ${F[@]};do for ff in $f;do if ! mp=$(man -w -S 1:6:8 "${ff##*/}" 2>&1 >/dev/null);then echo "$mp" |grep -v "man 7 undocumented";fi;done;done

No manual entry for ntfsmove
No manual entry for ipmaddr
No manual entry for iptunnel
^C

추신 : 물론 devscripts많은 유용한 유틸리티 / 스크립트가 포함되어 있기 때문에 설치할 수 있습니다 . 나는 단지 후드 아래에서 무엇이 실행되는지 알고 싶습니다 :-)


dscript, rmadison, wnpp-check 및 다른 것들과 같은 devscript에는 많은 흥미로운 패키지가 있습니다.이 패키지에 대해서는 알지 못했습니다. 그만한 가치가 있습니다. 데비안이 bashism을 제거하고 한 xterm에서 다른 xterm으로 더 쉽게 일반 셸 스크립트에 의존했기 때문에 bashscript가 될지 의심됩니다.
shirish

@shirish 좀 더 자세히 살펴보면, 원본 manpage-alert스크립트는 다음과 같이 시작됩니다.#!/bin/sh -e
George Vasiliou
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.