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:
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:and to add at the end:
This sets
$PATH
,$MANPATH
and$INFOPATH
. And it also tells you to edit/etc/manpath.config
with:and to add
underneath
# set up PATH to MANPATH mapping
.If you are unsure about this make a backup 1st (never a bad thing) with:
The weird string changes into the current date. If you mess up just copy the backup back over the original file:
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
: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 ofcat
.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.Open a terminal and type
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.