¿Hay alguna manera de encontrar paquetes binarios instalados que no tengan páginas de manual?


13

Recientemente vi https://lintian.debian.org/tags/binary-without-manpage.html y muestra alrededor de 14k páginas de manual que faltan.

Esto significa que es más que probable que a algunos de los paquetes binarios (no a las bibliotecas) les falten páginas de manual. ¿Cómo obtengo una lista de paquetes / aplicaciones binarios instalados (NO bibliotecas) que no tienen páginas de manual? Podría conocer algunos y comenzar a contribuir un poco para eso.

Respuestas:


16

Puede enumerar todos los binarios sin página man a través del manpage-alertcomando

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
no sabía que era parte del paquete devscripts, gracias.
Shirish

5

Si bien manpage-alerthace lo que pide, debe tener en cuenta que la lista en el enlace de su pregunta es generada por un proceso diferente, que es el siguiente control en Lintian:

https://github.com/Debian/lintian/blob/master/checks/manpages.pm

Por lo tanto, puede producirse llamando lintiancon la -T binary-without-manpageopción (y otras opciones para seleccionar los paquetes que desea verificar).


No sabía sobre eso, gracias.
Shirish

4

Gracias a la respuesta aceptada, fue interesante aprender sobre la existencia de la utilidad manpage-alert, parte del devscriptspaquete, que en realidad es un script de shell.

Intenté instalar, devscriptspero recibí un mensaje para instalar alrededor de 70 MB de dependencias, así que me salté.

Al descargar el devscriptspaquete deb ( apt download devscripts), extraer el deb y echar un vistazo más de cerca al manpage-alertscript, la historia completa "bajo el capó" es que este script de alerta ejecuta el comando:

man -w -S 1:8:6 <file> (w = mostrar ubicación -S 1: 8: 6 limita la búsqueda de personas en las secciones 1,8 y 6).

Esta operación se realiza en todos los archivos de forma recursiva en virtud de directorios /bin, /sbin, /usr/bin, /usr/sbin, y /usr/games.

Por otra parte, redirigiendo mana 2>&1, y también volver a dirigir a >/dev/null, si un archivo tiene una ubicación de página válido hombre no se imprime nada, pero si manse queja de un "sin entrada manual" y luego se imprime este mensaje.
El autor de manpage-alertestá eliminando el manmensaje de error del mensaje "see man 7 indocumented for help" y mantiene solo la primera línea = No manual entry for xxxx.

Como resultado, las siguientes líneas darán una impresión similar de binarios que faltan páginas de manual sin instalar el paquete 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

PD: ${ff##*/}se queda sólo con el nombre del comando despojar a la ruta /usr/bin/o /bin/o lo que sea

Arriba también se puede ejecutar como una línea:

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

PD: Por supuesto, puedes instalarlo devscriptsya que se incluyen muchas buenas utilidades / scripts. Solo me gusta saber qué pasa debajo del capó :-)


Hay muchos paquetes interesantes en devscripts, por ejemplo, dch, rmadison, wnpp-check y algunos otros, simplemente no sabían sobre este. Vale la pena. Dudo que sea un bashscript, ya que Debian ha estado tratando de eliminar los bashismos y confiar en scripts de shell simples que son más fáciles de un xterm a otro.
Shirish

@shirish Mirando más de cerca, el manpage-alertguión original comienza con#!/bin/sh -e
George Vasiliou
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.