¿Cómo instalo manualmente un archivo de página man?

44

¿Cómo instalo un archivo de página man en todo el sistema?

Por ejemplo, si tengo un archivo de página de manual examplecommand.1, ¿cómo lo instalo para que pueda escribir man examplecommandpara verlo?

Flimm
fuente

Respuestas:

53
  1. Primero, descubra a qué sección pertenece su página de manual. Si es un comando, probablemente pertenece a la sección 1. Puede leer la página de manual del mancomandoIcono de página de manual para ver una descripción de las diferentes secciones y sus números correspondientes.

  2. Copie su página de manual en /usr/local/share/man/man1/(cambie 1a su número de sección si es necesario). También puede instalarlo /usr/share/man/man1/, pero es una buena práctica usar el localdirectorio para los archivos que se instalan sin usar el administrador de paquetes APT:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. Ejecute el mandbcomando Esto actualizará manla base de datos interna:

    sudo mandb
    
  4. ¡Eso es! Debería poder ver la página man ejecutando:

    man 1 examplecommand
    

Referencias

Flimm
fuente
1
¿Existe una opción o cuál es la práctica recomendada cuando desea evitar el uso sudo?
Jorge Bucaran
@JorgeBucaran Vea la respuesta a continuación sobre cómo configurar MANPATH, que le permite colocar páginas de manual en espacios en los que puede escribir, por ejemplo, $ HOME / lib / share / man o en algún lugar así
nealmcb
Creo que podría almacenar las páginas del manual debajo /usr/local/man, así como lo sugerido en el mapeo PATH to MANPATH /etc/manpath.config.
jarno
10

Si solo necesita instalar la página man localmente :

Si no MANPATHestá configurado, o si incluye un componente vacío (es decir, comienza con :, termina con :o contiene ::), se <path>/share/manbuscarán automáticamente las páginas man cuando <path>/binsea ​​parte de PATH, para todos los valores de<path> .

Esto proporciona una manera muy simple de agregar páginas de manual para software instalado localmente. Hay algunos detalles en man manpathy /etc/manpath.config, pero no veo ninguna mención de la asignación genérica de <path>/bina <path>/share/man.

ntc2
fuente
Anexé MANPATH=<local path to the man pages>:$MANPATHsus ${HOME}/.bashrc(sesiones sin inicio de sesión) o ${HOME}/.profile(sesiones de inicio de sesión). En mi caso, configuré un directorio local para páginas de manual ${HOME}/share/man/, que imita el sistema de archivos clásico de Linux. Creé ${HOME}/share/man/man.1, que luego contiene un enlace simbólico a la ubicación del archivo examplecommand.1donde lo haya colocado el instalador del programa (el 'prefijo' de configuración). El lanzamiento man examplecommandencuentra las páginas de manual en punto. De esta manera, la instalación es local, no todo el sistema.
XavierStuvw
Este fue un comentario muy interesante, y proporciona un camino para las personas que solo necesitan establecer su RUTA (que ya esperan) para los binarios locales. Sin embargo, no creo que el mapeo genérico <path>/bin-> <path>/share/manexista. Al ejecutar strace (1) mancon MANPATH=:/nonexistingdir, veo lo siguiente: - <path>/bin-> <path>/man Esto está en un sistema Debain Buster.
Aktau
1

La respuesta de @ ntc2 anterior es la que la gente debería mirar. Quería agregar algunos comentarios adicionales que no cabían en la sección de comentarios:

El enfoque de @ ntc2 proporciona un camino para las personas que solo necesitan establecer su PATH (que ya esperan) para los binarios locales.

Sin embargo, no creo que el mapeo genérico <path>/bin-> <path>/share/manexista para todas las rutas $PATH. Parece que este mapeo específico se evita cuando lo es $PATHen cuestión $HOME/bin. Cuando realizo strace (1) mancon MANPATH=:/nonexistingdir, veo las siguientes búsquedas:

Para cualquier elemento $PATHque no sea$HOME/bin

  • <path>/bin -> <path>/man
  • <path>/bin -> <path>/bin/man
  • <path>/bin -> <path>/share/man
  • <path>/bin -> <path>/bin/share/man

por $HOME/bin

  • $HOME/bin -> $HOME/man

No tengo idea de por qué se salta a los demás. Esto está en un sistema Debian Buster. Puede ser diferente en otros sistemas.

Para mí, esto significa que la ruta más segura para instalar páginas de manual es <path>/man, ya que está garantizado que se encontrará si está en el $PATH.

Aktau
fuente