¿Cómo configurar MANPATH sin anular los valores predeterminados?

13

He agregado directorios adicionales al $PATHexportar PATH=/my/dirs:$PATH Pero no estoy seguro de si debería hacer lo mismo MANPATH. Porque el valor predeterminado MANPATHestá vacío pero el mancomando funciona. Encontré un comando llamado manpathy su manual dice If $MANPATH is set, manpath will simply display its contents and issue a warning.. ¿Significa esto que configurar MANPATH no es la forma correcta de agregar directorios para mancomandos para buscar páginas de manual?

balki
fuente

Respuestas:

19

Si simplemente configura MANPATH, anula el valor predeterminado y pierde el acceso a las páginas man estándar. Por ejemplo, man lsfunciona antes de configurar MANPATH, pero no funciona después.

Para agregar un directorio de búsqueda sin anular el valor predeterminado, coloque un prefijo dos puntos en MANPATH como este:

export MANPATH=":/path/to/custom/man"

Agregar los dos puntos le da acceso tanto a las páginas de manual del sistema estándar como a las páginas personalizadas a las que se hace referencia en la variable MANPATH.

Esta respuesta presentada por manpath (1) :

Si se establece $ MANPATH, manpath muestra su valor en lugar de determinarlo sobre la marcha. Si $ MANPATH tiene el prefijo dos puntos, el valor de la variable se agrega a la lista determinada a partir del contenido de los archivos de configuración. Si los dos puntos aparecen al final del valor en la variable, la lista determinada se agrega al contenido de la variable. Si el valor de la variable contiene dos puntos dobles (: :), entonces la lista determinada se inserta en el medio del valor, entre los dos puntos.

maharvey67
fuente
1

En mi opinión, debe agregar sus directorios personalizados al final de su RUTA

PATH=$PATH:/my/dirs

Esto es para que sus directorios personalizados no anulen los archivos binarios / bibliotecas del sistema y es un problema de seguridad menor.

configura MANPATH de la misma manera (MANPATH está vacío por defecto).

MANPATH=$MANTPATH:/my/dirs

No debería necesitar configurar un MANPATH con paquetes que se comporten bien, por lo que si no está roto, no lo arregle y si está roto, quizás sea mejor que presente un informe de error;)

Agregue esto a ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs
Pantera
fuente
Error tipográfico en la segunda declaración? MANPATH=$MANTPATH:/my/dirs Quizás debería ser:MANPATH=$MANPATH:/my/dirs
kevinarpe
¿Qué quiere decir con "paquetes con buen comportamiento"? Tengo un conjunto completo de herramientas que no están instaladas en los lugares habituales (los clústeres de HPC a menudo colocan cosas en / opt). ¿Cómo deberían registrar sus páginas de manual sin usar $ MANPATH?
i_grok
Los "paquetes con buen comportamiento" se escriben para utilizar rutas estándar y variables ambientales. Los paquetes con mal comportamiento usan rutas no estándar, al menos para Ubuntu, como / opt o no usan variables ambientales y, por lo tanto, conducen a su observación "Tengo un conjunto completo de herramientas que no están instaladas en los lugares habituales (los clústeres de HPC a menudo ponen cosas en / opt) "
Panther