web-dev-qa-db-fra.com

Comment savoir où $ MANPATH est défini?

Comment savoir dans quel fichier de configuration la variable d'environnement $MANPATH est définie? Y a-t-il un moyen de retracer les valeurs?

Je suis conscient du fait que je peux graper tout le système de fichiers en utilisant find ou grep. J'utilise zsh la plupart du temps au lieu de bash. Je lance Ubuntu Precise.

4
JJD

Comme d'autres l'ont déjà écrit, Ubuntu ne définit pas la MANPATH par défaut. Vous pouvez éditer votre .profile et ajouter le MANPATH à votre guise. Mais où Ubuntu obtient-il les informations sur votre manpath?

Cette information est définie dans /etc/manpath.config. Le package man-db utilise ces informations pour configurer les chemins d'accès pour man. La variable d'environnement MANPATH a priorité sur le fichier manpath.config. Le fichier contient les entrées suivantes (et probablement plus):

MANDATORY_MANPATH /usr/share/man
MANPATH_MAP /usr/bin /usr/man
DEFINE troff groff -mandoc

La première ligne indique à un logiciel qui génère automatiquement la MANPATH les répertoires qu’il doit contenir. Typiquement /usr/man, /usr/share/man et autres sont configurés ici.

Vient ensuite un mappage des utilisateurs PATH sur le correct MANPATH. Si un utilisateur a /usr/bin dans sa PATH, la MANPATH doit contenir /usr/man dans mon exemple ci-dessus.

La valeur DEFINE a un ensemble d'arguments et de programmes par défaut pour les utilitaires de pageur.

5
qbi

Ubuntu par défaut ne définit pas $MANPATH, votre recherche peut donc être limitée à votre ~/.{ba,z}shrc et aux fichiers qu’elles contiennent.

Le chemin de recherche compilé dans la commande man peut être vu avec man -w. Sur mon système (12.10), cela retourne /usr/local/man:/usr/local/share/man:/usr/share/man

4
Dennis Kaarsemaker

Essayez de courir

zsh -x -ls -c "exit" 2> Shell-startup-output

Après avoir exécuté cette commande, le fichier Shell-startup-output devrait vous montrer chaque fichier créé au démarrage du shell. Vous pouvez ensuite examiner chacun de ces fichiers pour déterminer lequel définit $MANPATH$.

Si cela ne fonctionne pas pour vous, la seule autre façon de le faire est d'utiliser grep ou find.

1
Andrew Johnson