Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

So, I'm not sure what is going on with my system (ubuntu 12.04), but my man pages do not seem to be working. I try man gcc and get the following response

No manual entry for gcc See 'man 7 undocumented' for help when manual pages are not available.

However I see the man entry in /usr/share/man/man1/gcc.1.gz

Here is what my /etc/manpath.config file looks like

# manpath.config
#
# This file is used by the man-db package to configure the man and cat paths.
# It is also used to provide a manpath for those without one by examining
# their PATH environment variable. For details see the manpath(5) man page.
#
# Lines beginning with `#' are comments and are ignored. Any combination of
# tabs or spaces may be used as `whitespace' separators.
#
# There are three mappings allowed in this file:
# --------------------------------------------------------
# MANDATORY_MANPATH         manpath_element
# MANPATH_MAP       path_element    manpath_element
# MANDB_MAP     global_manpath  [relative_catpath]
#---------------------------------------------------------
# every automatically generated MANPATH includes these fields
#
#MANDATORY_MANPATH          /usr/src/pvm3/man
#
MANDATORY_MANPATH           /usr/man
MANDATORY_MANPATH           /usr/share/man
MANDATORY_MANPATH           /usr/local/share/man
#---------------------------------------------------------
# set up PATH to MANPATH mapping
# ie. what man tree holds man pages for what binary directory.
#
#       *PATH*        ->    *MANPATH*
#
MANPATH_MAP /bin            /usr/share/man
MANPATH_MAP /usr/bin        /usr/share/man
MANPATH_MAP /sbin           /usr/share/man
MANPATH_MAP /usr/sbin       /usr/share/man
MANPATH_MAP /usr/local/bin      /usr/local/man
MANPATH_MAP /usr/local/bin      /usr/local/share/man
MANPATH_MAP /usr/local/sbin     /usr/local/man
MANPATH_MAP /usr/local/sbin     /usr/local/share/man
MANPATH_MAP /usr/X11R6/bin      /usr/X11R6/man
MANPATH_MAP /usr/bin/X11        /usr/X11R6/man
MANPATH_MAP /usr/games      /usr/share/man
MANPATH_MAP /opt/bin        /opt/man
MANPATH_MAP /opt/sbin       /opt/man
#---------------------------------------------------------
# For a manpath element to be treated as a system manpath (as most of those
# above should normally be), it must be mentioned below. Each line may have
# an optional extra string indicating the catpath associated with the
# manpath. If no catpath string is used, the catpath will default to the
# given manpath.
#
# You *must* provide all system manpaths, including manpaths for alternate
# operating systems, locale specific manpaths, and combinations of both, if
# they exist, otherwise the permissions of the user running man/mandb will
# be used to manipulate the manual pages. Also, mandb will not initialise
# the database cache for any manpaths not mentioned below unless explicitly
# requested to do so.
#
# In a per-user configuration file, this directive only controls the
# location of catpaths and the creation of database caches; it has no effect
# on privileges.
#
# Any manpaths that are subdirectories of other manpaths must be mentioned
# *before* the containing manpath. E.g. /usr/man/preformat must be listed
# before /usr/man.
#
#       *MANPATH*     ->    *CATPATH*
#
MANDB_MAP   /usr/man        /var/cache/man/fsstnd
MANDB_MAP   /usr/share/man      /var/cache/man
MANDB_MAP   /usr/local/man      /var/cache/man/oldlocal
MANDB_MAP   /usr/local/share/man    /var/cache/man/local
MANDB_MAP   /usr/X11R6/man      /var/cache/man/X11R6
MANDB_MAP   /opt/man        /var/cache/man/opt
#
#---------------------------------------------------------
# Program definitions.  These are commented out by default as the value
# of the definition is already the default.  To change: uncomment a
# definition and modify it.
#
#DEFINE     pager   pager -s
#DEFINE     cat cat
#DEFINE     tr  tr '\255\267\264\327' '\055\157\047\170'
#DEFINE     grep    grep
#DEFINE     troff   groff -mandoc
#DEFINE     nroff   nroff -mandoc
#DEFINE     eqn     eqn
#DEFINE     neqn    neqn
#DEFINE     tbl     tbl
#DEFINE     col     col
#DEFINE     vgrind  vgrind
#DEFINE     refer   refer
#DEFINE     grap    grap
#DEFINE     pic     pic -S
#
#DEFINE     compressor  gzip -c7
#---------------------------------------------------------
# Misc definitions: same as program definitions above.
#
#DEFINE     whatis_grep_flags       -i
#DEFINE     apropos_grep_flags      -iEw
#DEFINE     apropos_regex_grep_flags    -iE
#---------------------------------------------------------
# Section names. Manual sections will be searched in the order listed here;
# the default is 1, n, l, 8, 3, 0, 2, 5, 4, 9, 6, 7. Multiple SECTION
# directives may be given for clarity, and will be concatenated together in
# the expected way.
# If a particular extension is not in this list (say, 1mh), it will be
# displayed with the rest of the section it belongs to. The effect of this
# is that you only need to explicitly list extensions if you want to force a
# particular order. Sections with extensions should usually be adjacent to
# their main section (e.g. "1 1mh 8 ...").
#
SECTION     1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7
#
#---------------------------------------------------------
# Range of terminal widths permitted when displaying cat pages. If the
# terminal falls outside this range, cat pages will not be created (if
# missing) or displayed.
#
#MINCATWIDTH    80
#MAXCATWIDTH    80
#
# If CATWIDTH is set to a non-zero number, cat pages will always be
# formatted for a terminal of the given width, regardless of the width of
# the terminal actually being used. This should generally be within the
# range set by MINCATWIDTH and MAXCATWIDTH.
#
#CATWIDTH   0
#
#---------------------------------------------------------
# Flags.
# NOCACHE keeps man from creating cat pages.
#NOCACHE

Thanks for any help (p.s. even 'man man' fails)

Edit: When I run ls -l /usr/share/man/man1/gcc* I get the following output

lrwxrwxrwx 1 root root     12 May 27 15:41 /usr/share/man/man1/gcc.1.gz -> gcc-4.6.1.gz
-rw-r--r-- 1 root root 217776 Apr 15 17:34 /usr/share/man/man1/gcc-4.6.1.gz
share|improve this question
    
Just as a sanity check, what does ls -l /usr/share/man/man1/gcc* show? Are the permissions correct? Is gcc1.gz a symlink? Are you sure the symlink is not broken? –  unutbu Sep 4 '12 at 18:58
1  
Has $MANPATH been set? If I set MANPATH to a bogus directory (export MANPATH=/tmp), I can reproduce the error message... –  unutbu Sep 4 '12 at 19:16
1  
You checked your permissions for the files themselves, but what about the rest of the path /usr/share/man/man1 ? It should all be -rwxr-xr-x at each level. It probably is, but if part of the path was blocked accidentally (I'm sure it comes installed fine to start with), that might do it. If you can't figure it out, something like strace man man would probably show what's wrong, but I'm not familiar with interpreting the output. –  Joe Sep 5 '12 at 19:15
add comment

1 Answer 1

Well after a night of difficulty I was able to find the issue lied in perl of all places. After a purge and reinstall of perl it fixed my man pages now. Thanks for all the help, at least at this point I have a much better understanding of exactly what man does ;-)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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