Como adiciono um diretório ao MANPATH ou INFOPATH?

19

Acho que entendi as instruções fornecidas em Como adicionar um diretório ao PATH? sobre como adicionar diretórios ao $ PATH. Mas não entendo como adicionar diretórios a $ MANPATH ou $ INFOPATH.

Além disso - ao pesquisar em busca de ajuda, notei que às vezes as direções dizem export PATH=/usr/share/lib/something:$PATHe às vezes dizem export PATH=$PATH:/usr/share/lib/something. Qual e?

isomorfismos
fonte

Respostas:

24
  1. Estes 2 são quase os mesmos:

    export PATH=/usr/share/lib/something:$PATH 
    export PATH=$PATH:/usr/share/lib/something
    

    A única diferença é que o primeiro coloca o diretório a ser adicionado à frente e o segundo o coloca atrás dos diretórios atuais $PATH. Só importa se existem comandos internos /usr/share/lib/somethingcom o mesmo nome em um dos diretórios do Windows $PATH.

  2. Para adicionar diretórios $MANPATHou $INFOPATHconforme necessário a partir do link que você postou, faça isso alterando os arquivos de configuração dentro do link.

    Ele diz para abrir a versão global do bash.bashrccom:

    sudo vi /etc/bash.bashrc
    

    e para adicionar no final:

    PATH=/usr/local/texlive/2010/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH
    

    Isso define $PATH, $MANPATHe $INFOPATH. E também lhe diz para editar /etc/manpath.configcom:

    sudo vi /etc/manpath.config
    

    e para adicionar

    MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
    

    embaixo # set up PATH to MANPATH mapping.


Se você não tiver certeza, faça um backup primeiro (nunca é uma coisa ruim) com:

sudo cp /etc/bash.bashrc /etc/bash.backup_$(date +"%Y_%m_%d").bashrc
sudo cp /etc/manpath.config /etc/manpath.backup_$(date +"%Y_%m_%d").config

A sequência estranha muda para a data atual. Se você errar, basta copiar o backup novamente sobre o arquivo original:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  
Rinzwind
fonte
1
Instalei o texlive 2012 no Ubuntu Precise e echo $MANPATHretornei /usr/local/texlive/2012/texmf/doc/manpara mim. Quando adiciono os caminhos aos relatórios de configuração do bash /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/mane o zsh still report /usr/local/texlive/2012/texmf/doc/man. Para zsh, adiciono os caminhos para /etc/zsh/zshrc. Não tenho certeza se isso está correto. Eu também tentei editar /etc/environment, como sugerido aqui , embora sem sucesso.
JJD 16/08
Que comando eu posso ver depois de escrever MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? Eu tentei man tlmgre diz que não existe.
Arturo
2

Se suas páginas de manual estiverem disponíveis /usr/local/myproject/man, tudo o que você precisa fazer é adicionar isso a (no final de) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man
Michel
fonte
0

x:y:z:$PATHou $PATH:x:y:z?

Pouco diferente. $PATHcontém uma :lista separada de locais onde o bash (o shell / terminal) deve procurar um programa.

Por exemplo, se você digitar cata maneira como o terminal entende o que isso significa é examinar o primeiro, o segundo e o terceiro elementos de $PATHe salvar o primeiro local encontrado para invocações posteriores cat.

Se eu tenho duas versões diferentes de um programa em dois lugares diferentes, com um deles sendo preferido, e $PATHdiz ao shell para procurar na ordem errada, então há um problema. Caso contrário, não há problema.


exportação

Abra um terminal e digite

echo $a
a=5
echo a
echo $a

Você verá que a=5define o valor da variável e $ase refere ao nome da variável, não ao valor.

Abra um segundo terminal e digite echo $a. Deveria estar novamente em branco.

A diferença entre exporte assignment ( =) é explicada aqui: /programming/1158091/defining-a-variable-with-or-without-export .

isomorfismos
fonte