Как добавить каталог в MANPATH или INFOPATH?

18

Я думаю, что понимаю инструкции, приведенные в Как добавить каталог в PATH? о добавлении каталогов в $ PATH. Но я не понимаю, как добавить каталоги в $ MANPATH или $ INFOPATH.

Кроме того, в поиске по поисковой системе я заметил, что иногда в указаниях говорят export PATH=/usr/share/lib/something:$PATH , а иногда они говорят export PATH=$PATH:/usr/share/lib/something . Что это?

    
задан isomorphismes 10.09.2011 в 01:36
источник

3 ответа

21
  1. Эти 2 почти одинаковы:

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

    Единственное отличие состоит в том, что первый помещает каталог в начало, а второй - в текущие каталоги в $PATH . Неважно, есть ли команды внутри /usr/share/lib/something , которые имеют одно и то же имя внутри одной из каталогов в $PATH .

  2. Чтобы добавить каталоги в $MANPATH или $INFOPATH , как требуется из указанной вами ссылки, вы делаете это, изменяя файлы конфигурации внутри ссылки.

    В нем говорится, чтобы открыть глобальную версию bash.bashrc с помощью:

    sudo vi /etc/bash.bashrc
    

    и добавить в конце:

    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
    

    Это устанавливает $PATH , $MANPATH и $INFOPATH . И он также сообщает вам изменить /etc/manpath.config с помощью:

    sudo vi /etc/manpath.config
    

    и добавить

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

    под # set up PATH to MANPATH mapping .

Если вы не уверены в этом, сделайте резервную копию 1st (никогда не плохо):

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

Странная строка изменяется на текущую дату. Если вы испортили, просто скопируйте резервную копию поверх исходного файла:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  
    
ответ дан Rinzwind 10.09.2011 в 01:58
источник
2

Если страницы вашего человека находятся в /usr/local/myproject/man , все, что вам нужно сделать, это добавить это к (концу) /etc/manpath.config :

MANDATORY_MANPATH        /usr/local/myproject/man
    
ответ дан Michel 06.06.2014 в 17:46
0
  

x:y:z:$PATH или $PATH:x:y:z ?

Едва отличается. $PATH содержит : -сепарализованный список мест, где bash (оболочка / терминал) должен проверять программу.

Например, если вы наберете cat , как понимает терминал, это означает, что он просматривает первый, второй, третий элементы $PATH , затем сохранить первое местоположение, которое оно находит для последующих вызовов cat .

Если у меня есть две разные версии программы в двух разных местах, причем одна из них предпочтительнее, а $PATH сообщает оболочке о поиске в неправильном порядке, тогда есть проблема. В противном случае нет проблем.

  

Экспорт

Откройте терминал и введите

echo $a
a=5
echo a
echo $a

Вы увидите, что a=5 задает значение переменной, а $a - имя переменной, а не значение.

Откройте второй терминал и введите echo $a . Он снова должен быть пустым.

Здесь объясняется разница между export и присваиванием ( = ): Ссылка .

    
ответ дан isomorphismes 25.02.2015 в 23:22