Как добавить каталог в MANPATH или INFOPATH?
Мне кажется, я понимаю инструкции, приведенные в разделе Как добавить каталог в PATH? о добавлении каталогов в $PATH. Но я не понимаю, как добавить каталоги в $MANPATH или $INFOPATH.
Кроме того - в поисках помощи я заметил, что иногда указания говорят export PATH=/usr/share/lib/something:$PATH
а иногда говорят export PATH=$PATH:/usr/share/lib/something
, Что он?
3 ответа
Эти 2 почти одинаковы:
export PATH=/usr/share/lib/something:$PATH export PATH=$PATH:/usr/share/lib/something
Единственное отличие состоит в том, что первый размещает каталог для добавления впереди, а второй - позади текущих каталогов в
$PATH
, Это имеет значение только если есть команды внутри/usr/share/lib/something
которые имеют одно и то же имя внутри одного из каталогов в$PATH
,Добавить каталоги в
$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
,
Если вы не уверены в этом, сделайте резервную копию 1-й (никогда не плохо) с:
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
Если ваши справочные страницы находятся в /usr/local/myproject/man
все, что вам нужно сделать, это добавить это (конец) /etc/manpath.config
:
MANDATORY_MANPATH /usr/local/myproject/man
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
и назначение (=
) объясняется здесь: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export.