How do I add a directory to MANPATH or INFOPATH?
I think I understand the instructions given in How to add a directory to the PATH? about adding directories to $PATH. But I don't understand how to add directories to $MANPATH or $INFOPATH.
Also -- in googling around for help I have noticed that sometimes directions say export PATH=/usr/share/lib/something:$PATH
and sometimes they say export PATH=$PATH:/usr/share/lib/something
. Which is it?
-
These 2 are almost the same:
export PATH=/usr/share/lib/something:$PATH export PATH=$PATH:/usr/share/lib/something
The only difference is that the first one puts the directory to add in front and the second one puts it behind the current directories in
$PATH
. It only matters if there are commands inside/usr/share/lib/something
that have the same name inside one of the directories in$PATH
. -
To add directories to
$MANPATH
or$INFOPATH
as required from the link you posted you do that by changing the config files inside the link.It says to open the global version of
bash.bashrc
with:sudo vi /etc/bash.bashrc
and to add at the end:
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
This sets
$PATH
,$MANPATH
and$INFOPATH
. And it also tells you to edit/etc/manpath.config
with:sudo vi /etc/manpath.config
and to add
MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
underneath
# set up PATH to MANPATH mapping
.
If you are unsure about this make a backup 1st (never a bad thing) with:
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
The weird string changes into the current date. If you mess up just copy the backup back over the original file:
$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1 test1.2014_11_14
If your man pages are in /usr/local/myproject/man
, all you need to do is add that to (the end of) /etc/manpath.config
:
MANDATORY_MANPATH /usr/local/myproject/man
x:y:z:$PATH
or$PATH:x:y:z
?
Barely different. $PATH
contains a :
-separated list of places where bash (the shell/terminal) should check for a program.
For example if you type cat
the way the terminal understands what that means is to look through the first, second, third elements of $PATH
, then save the first location it finds for later invocations of cat
.
If I have two different versions of a program in two different places, with one of them being preferred, and $PATH
tells the shell to search in the wrong order, then there's a problem. Otherwise, no problem.
export
Open a terminal and type
echo $a
a=5
echo a
echo $a
You'll see that a=5
set the variable value and $a
refers to the variable name, not the value.
Open a second terminal and type echo $a
. It should again be blank.
The difference between export
and assignment (=
) is explained here: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export.