¿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 examplecommand
para verlo?
fuente
¿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 examplecommand
para verlo?
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 man
comando para ver una descripción de las diferentes secciones y sus números correspondientes.
Copie su página de manual en /usr/local/share/man/man1/
(cambie 1
a 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 local
directorio para los archivos que se instalan sin usar el administrador de paquetes APT:
sudo cp examplecommand.1 /usr/local/share/man/man1/
Ejecute el mandb
comando Esto actualizará man
la base de datos interna:
sudo mandb
¡Eso es! Debería poder ver la página man ejecutando:
man 1 examplecommand
man
comandomandb
comando/usr/bin/dh_installman
si puede leer Perl, instalado con el debhelper
paquete.
sudo
?/usr/local/man
, así como lo sugerido en el mapeo PATH to MANPATH/etc/manpath.config
.Si solo necesita instalar la página man localmente :
Si no
MANPATH
está configurado, o si incluye un componente vacío (es decir, comienza con:
, termina con:
o contiene::
), se<path>/share/man
buscarán automáticamente las páginas man cuando<path>/bin
sea parte dePATH
, 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 manpath
y/etc/manpath.config
, pero no veo ninguna mención de la asignación genérica de<path>/bin
a<path>/share/man
.fuente
MANPATH=<local path to the man pages>:$MANPATH
sus${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 archivoexamplecommand.1
donde lo haya colocado el instalador del programa (el 'prefijo' de configuración). El lanzamientoman examplecommand
encuentra las páginas de manual en punto. De esta manera, la instalación es local, no todo el sistema.<path>/bin
-><path>/share/man
exista. Al ejecutar strace (1)man
conMANPATH=:/nonexistingdir
, veo lo siguiente: -<path>/bin
-><path>/man
Esto está en un sistema Debain Buster.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/man
exista para todas las rutas$PATH
. Parece que este mapeo específico se evita cuando lo es$PATH
en cuestión$HOME/bin
. Cuando realizo strace (1)man
conMANPATH=:/nonexistingdir
, veo las siguientes búsquedas:Para cualquier elemento
$PATH
que 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
.fuente