I have added extra directories to $PATH by exporting PATH=/my/dirs:$PATH But I am not sure if I should do the same to MANPATH. Because default MANPATH is empty yet man command works. I found a command called manpath and its manual says If $MANPATH is set, manpath will simply display its contents and issue a warning.. Does this mean setting MANPATH is not the right way to add directories for man command to search for manual pages?


If you simply set MANPATH, it overrides the default and you lose access to the standard man pages. For example, man ls works before setting MANPATH, but does not work afterwards.

To append a search directory without overriding the default, prefix a colon to MANPATH like this:

export MANPATH=":/path/to/custom/man"

Adding the colon gives you access to both the standard system man pages and the custom pages referenced in the MANPATH variable.

This answer brought to you by manpath(1):

If $MANPATH is set, manpath displays its value rather than determining it on the fly. If $MANPATH is prefixed by a colon, then the value of the variable is appended to the list determined from the content of the configuration files. If the colon comes at the end of the value in the variable, then the determined list is appended to the content of the variable. If the value of the variable contains a double colon (::), then the determined list is inserted in the middle of the value, between the two colons.


You should add your custom directories at the end of your PATH:


This is so your custom directories do not override system binaries and libraries, which could cause a security issue.

You set MANPATH the same way (MANPATH is empty by default):


You should not need to set a MANPATH with well behaved packages, so if it is not broken don't fix it. If it is broken, perhaps you are better filing a bug report ;)

Add this to ~/.bashrc:

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs
  • Typo in the second statement? MANPATH=$MANTPATH:/my/dirs Maybe should be: MANPATH=$MANPATH:/my/dirs – kevinarpe Nov 11 '13 at 9:25
  • What do you mean by "well behaved packages"? I have a whole set of tools that are not installed in the usual places (HPC clusters often put things in /opt). How should they register their man pages without using $MANPATH? – i_grok Mar 15 '14 at 15:30
  • "well behaved packages" are written to use standard paths and environmental variables. Poorly behaved packages use non standard, at least to Ubuntu, paths such as /opt or do not use environmental variables and thus lead to your observation " I have a whole set of tools that are not installed in the usual places (HPC clusters often put things in /opt)" – Panther Mar 15 '14 at 16:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.