Comment définir MANPATH sans remplacer les valeurs par défaut?

14

J'ai ajouté des répertoires supplémentaires à l' $PATHexportation, PATH=/my/dirs:$PATH mais je ne sais pas si je dois faire de même pour MANPATH. Parce que la valeur par défaut MANPATHest vide, la mancommande fonctionne. J'ai trouvé une commande appelée manpathet son manuel dit If $MANPATH is set, manpath will simply display its contents and issue a warning.. Cela signifie-t-il que définir MANPATH n'est pas la bonne façon d'ajouter des répertoires pour que la mancommande recherche les pages de manuel?

balki
la source

Réponses:

20

Si vous définissez simplement MANPATH, il remplace la valeur par défaut et vous perdez l'accès aux pages de manuel standard. Par exemple, man lsfonctionne avant de définir MANPATH, mais ne fonctionne pas par la suite.

Pour ajouter un répertoire de recherche sans remplacer la valeur par défaut, préfixez deux points à MANPATH comme ceci:

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

L'ajout des deux points vous donne accès à la fois aux pages de manuel du système standard et aux pages personnalisées référencées dans la variable MANPATH.

Cette réponse vous est apportée par manpath (1) :

Si $ MANPATH est défini, manpath affiche sa valeur plutôt que de la déterminer à la volée. Si $ MANPATH est préfixé par deux points, la valeur de la variable est ajoutée à la liste déterminée à partir du contenu des fichiers de configuration. Si les deux points arrivent à la fin de la valeur de la variable, la liste déterminée est ajoutée au contenu de la variable. Si la valeur de la variable contient deux points deux-points (: :), la liste déterminée est insérée au milieu de la valeur, entre les deux deux-points.

maharvey67
la source
1

OMI, vous devez ajouter vos répertoires personnalisés à la fin de votre CHEMIN

PATH=$PATH:/my/dirs

Ceci afin que vos répertoires personnalisés ne dépassent pas les fichiers binaires / bibliothèques système et constitue un problème de sécurité mineur.

vous définissez MANPATH de la même manière (MANPATH est vide par défaut).

MANPATH=$MANTPATH:/my/dirs

Vous ne devriez pas avoir besoin de définir un MANPATH avec des paquets bien comportés, donc s'il n'est pas cassé ne le corrigez pas et s'il est cassé, peut-être que vous feriez mieux de déposer un rapport de bogue;)

Ajoutez ceci à ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs
Panthère
la source
Faute de frappe dans la deuxième déclaration? MANPATH=$MANTPATH:/my/dirs Peut-être devrait être:MANPATH=$MANPATH:/my/dirs
kevinarpe
Qu'entendez-vous par «paquets bien comportés»? J'ai tout un ensemble d'outils qui ne sont pas installés aux endroits habituels (les clusters HPC mettent souvent des choses dans / opt). Comment doivent-ils enregistrer leurs pages de manuel sans utiliser $ MANPATH?
i_grok
Les "packages bien comportés" sont écrits pour utiliser des chemins et des variables d'environnement standard. Les packages mal comportés utilisent des chemins non standard, au moins pour Ubuntu, tels que / opt ou n'utilisent pas de variables d'environnement et conduisent ainsi à votre constat "J'ai tout un ensemble d'outils qui ne sont pas installés aux endroits habituels (les clusters HPC mettent souvent choses dans / opt) "
Panther