Como definir o MANPATH sem substituir os padrões?

13

Adicionei diretórios extras $PATHexportando PATH=/my/dirs:$PATH Mas não tenho certeza se devo fazer o mesmo MANPATH. Como o padrão MANPATHestá vazio, o mancomando funciona. Encontrei um comando chamado manpathe o manual diz If $MANPATH is set, manpath will simply display its contents and issue a warning.. Isso significa que a configuração de MANPATH não é a maneira correta de adicionar diretórios para o mancomando procurar páginas de manual?

balki
fonte

Respostas:

19

Se você simplesmente configurar MANPATH, ele substituirá o padrão e você perderá o acesso às páginas de manual padrão. Por exemplo, man lsfunciona antes de definir MANPATH, mas não funciona depois.

Para anexar um diretório de pesquisa sem substituir o padrão, prefixe dois pontos para MANPATH assim:

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

A adição de dois pontos fornece acesso às páginas de manual do sistema padrão e às páginas personalizadas mencionadas na variável MANPATH.

Esta resposta trouxe a você pelo manpath (1) :

Se $ MANPATH estiver definido, manpath exibirá seu valor em vez de determiná-lo rapidamente. Se $ MANPATH for prefixado por dois pontos, o valor da variável será anexado à lista determinada a partir do conteúdo dos arquivos de configuração. Se os dois pontos chegarem ao final do valor na variável, a lista determinada será anexada ao conteúdo da variável. Se o valor da variável contiver dois pontos duplos (: :), a lista determinada será inserida no meio do valor, entre os dois pontos.

maharvey67
fonte
1

Na IMO, você deve adicionar seus diretórios personalizados no final do seu PATH

PATH=$PATH:/my/dirs

Isso é para que seus diretórios personalizados não excedam os binários / libs do sistema e é um problema de segurança menor.

você define MANPATH da mesma maneira (MANPATH está vazio por padrão).

MANPATH=$MANTPATH:/my/dirs

Você não precisa definir um MANPATH com pacotes bem comportados; portanto, se não estiver quebrado, não o corrija e se estiver quebrado, talvez seja melhor arquivar um relatório de bug;)

Adicione isso ao ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs
Pantera
fonte
Erro de digitação na segunda declaração? MANPATH=$MANTPATH:/my/dirs Talvez devesse ser:MANPATH=$MANPATH:/my/dirs
kevinarpe 11/11
O que você quer dizer com "pacotes bem comportados"? Eu tenho todo um conjunto de ferramentas que não são instaladas nos locais habituais (os clusters HPC geralmente colocam as coisas em / opt). Como eles devem registrar suas páginas de manual sem usar $ MANPATH?
21414
"pacotes bem comportados" são escritos para usar caminhos padrão e variáveis ​​ambientais. Pacotes mal comportados usam caminhos não padrão, pelo menos para o Ubuntu, caminhos como / opt ou não usam variáveis ​​ambientais e, portanto, levam à sua observação "Eu tenho todo um conjunto de ferramentas que não são instaladas nos locais habituais (os clusters HPC geralmente colocam coisas em / opt) "
Panther