Como eu adiciono um diretório ao MANPATH ou ao INFOPATH?

18

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

Além disso, ao procurar ajuda, às vezes as direções dizem export PATH=/usr/share/lib/something:$PATH e às vezes dizem export PATH=$PATH:/usr/share/lib/something . Qual é?

    
por isomorphismes 10.09.2011 / 03:36

3 respostas

21
  1. Estes dois 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 para adicionar na frente e o segundo o coloca atrás dos diretórios atuais em $PATH . Só importa se há comandos dentro de /usr/share/lib/something que tenham o mesmo nome dentro de um dos diretórios em $PATH .

  2. Para adicionar diretórios a $MANPATH ou $INFOPATH , conforme exigido pelo link que você postou, faça isso alterando os arquivos de configuração dentro do link.

    Diz para abrir a versão global de bash.bashrc com:

    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 , $MANPATH e $INFOPATH . E também diz para você editar /etc/manpath.config com:

    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
    

    abaixo de # set up PATH to MANPATH mapping .

Se você não tem certeza sobre isso, 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 string estranha muda para a data atual. Se você errar, basta copiar o backup de volta para o arquivo original:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  
    
por Rinzwind 10.09.2011 / 03:58
2

Se as suas páginas man estiverem em /usr/local/myproject/man , tudo o que você precisa fazer é adicionar isso ao (final de) /etc/manpath.config :

MANDATORY_MANPATH        /usr/local/myproject/man
    
por Michel 06.06.2014 / 19:46
0

x:y:z:$PATH or $PATH:x:y:z?

Apenas diferente. $PATH contém uma lista separada por : de lugares onde o bash (o shell / terminal) deve procurar por um programa.

Por exemplo, se você digitar cat , a maneira como o terminal entende o que isso significa é procurar pelo primeiro, segundo e terceiro elementos de $PATH , então salve o primeiro local encontrado para invocações posteriores de cat .

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

export

Abra um terminal e digite

echo $a
a=5
echo a
echo $a

Você verá que a=5 definiu o valor da variável e $a refere-se 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 export e atribuição ( = ) é explicada aqui: link .

    
por isomorphismes 26.02.2015 / 00:22

Tags