Como descobrir onde $ MANPATH está definido?

3

Como posso descobrir em qual arquivo de configuração a variável de ambiente $MANPATH está definida? Existe uma maneira de rastrear os valores?

Estou ciente de que posso percorrer todo o sistema de arquivos usando find ou grep . Estou usando zsh a maior parte do tempo em vez de bash . Eu corro o Ubuntu Precise.

    
por JJD 15.12.2012 / 19:43

3 respostas

4

O Ubuntu, por padrão, não define $MANPATH , portanto, sua pesquisa pode ser limitada ao seu ~/.{ba,z}shrc e aos arquivos que eles incluem

O caminho de busca compilado no comando man pode ser visto com man -w . No meu sistema (12.10), isso retorna /usr/local/man:/usr/local/share/man:/usr/share/man

    
por Dennis Kaarsemaker 15.12.2012 / 21:02
4

Como outros já escreveram, o Ubuntu não define MANPATH por padrão. Você pode editar seu .profile e adicionar o MANPATH como desejar. Mas onde o Ubuntu obtém as informações sobre o seu caminho?

Esta informação está definida em /etc/manpath.config . O pacote man-db usa essa informação para configurar os caminhos para o homem. A variável de ambiente MANPATH tem precedência sobre o arquivo manpath.config . O arquivo tem as seguintes entradas (e provavelmente mais):

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

A primeira linha diz ao software que gera automaticamente os MANPATH de quais diretórios deve conter. Normalmente, /usr/man , /usr/share/man e outros são configurados aqui.

Em seguida, há um mapeamento dos usuários PATH para o MANPATH correto. Se um usuário tiver /usr/bin em seu PATH , o MANPATH deverá conter /usr/man no exemplo acima.

O valor DEFINE tem algum conjunto padrão de argumentos e programas para utilitários de pager.

    
por qbi 06.02.2013 / 20:56
1

Tente executar

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

Depois de executar este comando, o arquivo shell-startup-output deve mostrar a você cada arquivo sendo originado quando o shell é iniciado. Você pode examinar cada um desses arquivos para ver qual define $MANPATH$ .

Se isso não funcionar para você, a única outra maneira que sei é usar grep ou find .

    
por Andrew Johnson 15.12.2012 / 20:01