6 votos

MacOS Terminal no está utilizando el manpath correcto

¿Cómo configurar $MANPATH o manpath para el menú de Ayuda de Terminal de macOS: ¿Cómo abrir la página del manual para la selección?

Habiendo hecho recientemente una instalación limpia de macOS Mojave (10.14.6), estoy tratando de configurar mi Terminal.app de macOS. El problema radica en el comando de menú de Terminal Abrir página del manual o Abrir página del manual para la selección y su servicio asociado disponible en todo el sistema en el menú Servicios. Me gustaría configurar el manpath que el comando de menú está utilizando para que sea el mismo que mi shell bash.

El comando estándar /usr/bin/man funciona genial desde mi shell. Pero me gusta poder seleccionar una palabra, tema o comando en la Terminal y hacer clic derecho. El menú contextual tiene Abrir página del manual y Servicios Abrir página del manual en Terminal. Uso mucho este último porque funciona en cualquier lugar. El menú comando abre una nueva ventana en Terminal que contiene el texto completo y formateado de la página del manual, con un perfil de ventana especial/esquema de colores, sin interrumpir mi sesión de shell actual.

Mi problema específico se ilustra de la siguiente manera. Si selecciono "bash", hago clic derecho y Abrir página del manual, entonces la página del manual que obtengo es para bash 3.2. Casi con seguridad proviene de /usr/share/man/man1/bash.1.
Si escribo man bash en el shell de Terminal, obtengo la página del manual para bash 5.0: /usr/local/share/man/man1/bash.1. Al escribir man -aw bash, obtengo

$ man -aw bash
/usr/local/share/man/man1/bash.1
/usr/share/man/man1/bash.1
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share/man/man1/bash.1

Si escribo manpath, reemplazando los dos puntos por saltos de línea, obtengo

$ manpath | perl -nE 's/:/\n/g; print'
/opt/local/share/man
/usr/local/share/man
/usr/share/man
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share/man
/Applications/Xcode.app/Contents/Developer/usr/share/man
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man
/usr/local/opt/ack/share/man

No sé cómo consultar el manpath que está utilizando la Terminal, o cómo configurarlo. Por favor, ayuda con cualquier consejo sobre cómo configurar el comando de menú de Terminal Abrir página del manual para la selección.


Más información:

cbedgar@CBmac: ~  | 14:22:38 | -bash5.0.11
293$ man -d
Leyendo archivo de configuración /private/etc/man.conf
Buscando si existe un catálogo de mensajes man, pero no hay ninguno
(y para los mensajes en inglés no es necesario ninguno)

se encontró el directorio man /usr/local/share/man
se encontró el directorio man /opt/local/share/man
se encontró el directorio man /usr/share/man
se encontró el directorio man /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share/man
se encontró el directorio man /Applications/Xcode.app/Contents/Developer/usr/share/man
se encontró el directorio man /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man
se encontró el directorio man /usr/local/opt/ack/share/man
se encontró el directorio man /usr/local/opt/bash/share/man
se encontró el directorio man /usr/local/opt/gdbm/share/man
se encontró el directorio man /usr/local/opt/gettext/share/man
se encontró el directorio man /usr/local/opt/gnupg/share/man
se encontró el directorio man /usr/local/opt/gnupg2/share/man
se encontró el directorio man /usr/local/opt/gnupg@2.2/share/man
se encontró el directorio man /usr/local/opt/gnutls/share/man
se encontró el directorio man /usr/local/opt/gpg/share/man
se encontró el directorio man /usr/local/opt/gpg2/share/man
se encontró el directorio man /usr/local/opt/grep/share/man
se encontró el directorio man /usr/local/opt/jq/share/man
se encontró el directorio man /usr/local/opt/libevent/share/man
se encontró el directorio man /usr/local/opt/libffi/share/man
se encontró el directorio man /usr/local/opt/libgcrypt/share/man
se encontró el directorio man /usr/local/opt/libgpg-error/share/man
se encontró el directorio man /usr/local/opt/libidn2/share/man
se encontró el directorio man /usr/local/opt/libtasn/share/man
se encontró el directorio man /usr/local/opt/libtasn1/share/man
se encontró el directorio man /usr/local/opt/libxml2/share/man
se encontró el directorio man /usr/local/opt/openssl/share/man
se encontró el directorio man /usr/local/opt/openssl@1.1/share/man
se encontró el directorio man /usr/local/opt/pandoc/share/man
se encontró el directorio man /usr/local/opt/pcre/share/man
se encontró el directorio man /usr/local/opt/pcre1/share/man
se encontró el directorio man /usr/local/opt/perl/share/man
se encontró el directorio man /usr/local/opt/perl@5.30/share/man
se encontró el directorio man /usr/local/opt/pure-ftpd/share/man
se encontró el directorio man /usr/local/opt/python/share/man
se encontró el directorio man /usr/local/opt/python2/share/man
se encontró el directorio man /usr/local/opt/python3/share/man
se encontró el directorio man /usr/local/opt/python@2/share/man
se encontró el directorio man /usr/local/opt/python@3/share/man
se encontró el directorio man /usr/local/opt/readline/share/man
se encontró el directorio man /usr/local/opt/sqlite/share/man
se encontró el directorio man /usr/local/opt/sqlite3/share/man
se encontró el directorio man /usr/local/opt/unbound/share/man
se encontró el directorio man /usr/local/opt/xz/share/man
se encontró el mapeo de manpath /bin --> /usr/share/man
se encontró el mapeo de manpath /sbin --> /usr/share/man
se encontró el mapeo de manpath /usr/bin --> /usr/share/man
se encontró el mapeo de manpath /usr/sbin --> /usr/share/man
se encontró el mapeo de manpath /usr/local/bin --> /usr/local/share/man
se encontró el mapeo de manpath /usr/local/sbin --> /usr/local/share/man
se encontró el mapeo de manpath /usr/X11/bin --> /usr/X11/man
se encontró el mapeo de manpath /usr/bin/X11 --> /usr/X11/man
se encontró el mapeo de manpath /usr/bin/mh --> /usr/share/man

usando /usr/bin/less -is como paginador

usando /usr/bin/less -is como navegador

usando /bin/cat para volcar páginas HTML como texto¿Qué página de manual deseas?

1voto

l --marc l Puntos 122

En mi caso de uso, Terminal Abrir página del manual no funcionaba para software de terceros en Apple ARM-based macOS Ventura. Por ejemplo, Homebrew, MacTeX.

También, el Esquema URI x-man-page:// para Terminal.app no funcionaba en el mismo escenario. Ejemplo de uso de x-man-page en markdown:

FFmpegQuickReference.md

# [FFmpeg][t] Referencia rápida
[t]:x-man-page://1/ffmpeg

páginas del manual: [ffmpeg](x-man-page://1/ffmpeg), [ffprobe](x-man-page://1/ffprobe)

… recorte …

La página del manual de Ventura muestra /usr/local/etc/man.d en la sección de ARCHIVOS:

ARCHIVOS /etc/man.conf Archivo de configuración del sistema. /usr/local/etc/man.d/*.conf Archivos de configuración locales.

Esta es una solución para macOS Ventura (Apple ARM) que funcionó tanto para el elemento de menú Abrir página del manual como para el URI x-man-page:

### verifica la existencia del directorio man.d
ls -l /usr/local/etc
### añade estos directorios si no están presentes
sudo mkdir /usr/local/etc
sudo mkdir /usr/local/etc/man.d

cd /usr/local/etc/man.d
sudo touch man.conf
sudo nano man.conf

### Ver en Finder:
open /usr/local/etc

Contenidos de /usr/local/etc/man.d/man.conf:

### :EDITAR:2023.10.01: Creado /usr/local/etc/man.d/man.conf

### Homebrew
MANPATH /opt/homebrew/share/man
MANPATH /opt/homebrew/Cellar/*/*/share/man

### MacTeX 2023
MANPATH /usr/local/texlive/2023/texmf-dist/doc/man

### XQuartz X11
MANPATH /opt/X11/share/man

Alternativamente, se puede crear un archivo *.man.conf para cada distribución de terceros.

usr
 local
     etc
         man.d
             homebrew.man.conf
             mactex.man.conf
             xquartz.man.conf

Adendum

Ver el problema de Homebrew "Terminal.app 'Abrir página del manual' menú contextual y esquema URI 'x-man-page' no funcionan en Apple Silicon para las fórmulas de brew" para más discusión sobre este tema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X