Why are some man pages missing?

I installed man-pages and ran “sudo mandb -c”, but many man pages are still missing, e.g.

> man ln
No manual entry for ln

What am I missing?


man-pages are installed?

zypper se -si man-pages

Also coreutils are installed:

rpm -ql coreutils | grep -i 'man1/ln'

mandb --help
Usage: mandb [OPTION...] [MANPATH]

  -c, --create               create dbs from scratch, rather than updating
  -C, --config-file=FILE     use this user configuration file
  -d, --debug                emit debugging messages
  -f, --filename=FILENAME    update just the entry for this filename
  -p, --no-purge             don't purge obsolete entries from the dbs
  -q, --quiet                work quietly, except for 'bogus' warning
  -s, --no-straycats         don't look for or add stray cats to the dbs
  -t, --test                 check manual pages for correctness
  -u, --user-db              produce user databases only
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to cjwatson@debian.org.

Maybe you created a empty database?

As I said in my OP, I started out by installing man-pages. At that time, “man ln” didn’t work. Then I ran mandb, and the database is not empty because many man commands work, e.g. “man init” shows the appropriate man page. However, I get this even after reinstalling coreutils:

> rpm -ql coreutils | grep -i 'man1/ln'

No output, and this:

> ls /usr/share/man/man1/ln*

Does one or more of the following packages need to be installed as well?

> sudo zypper se coreutils
Loading repository data...
Reading installed packages...

S  | Name                         | Summary                                    | Type
   | busybox-coreutils            | Busybox applets replacing coreutils        | package
   | busybox-policycoreutils      | Busybox applets replacing policycoreutils  | package
i+ | coreutils                    | GNU Core Utilities                         | package
   | coreutils-doc                | Documentation for the GNU Core Utilities   | package
   | coreutils-lang               | Translations for package coreutils         | package
   | coreutils-single             | GNU Core Utilities                         | package
   | coreutils-testsuite          | GNU Core Utilities                         | package
   | policycoreutils              | SELinux policy core utilities              | package
   | policycoreutils-devel        | SELinux policy core policy devel utilities | package
   | policycoreutils-lang         | Translations for package policycoreutils   | package
   | policycoreutils-newrole      | The newrole application for RBAC/MLS       | package
   | policycoreutils-python-utils | SELinux policy core python utilities       | package
   | python3-policycoreutils      | SELinux policy core python3 interfaces     | package

EDIT: Yes! After installing coreutils-docs, “man ln” works. Shouldn’t that have been installed along with coreutils when I built the basic installation?


In YaST i can see that /usr/share/man/man1/ln.1.gz comes with the package coreutils-doc.



Sorry! Wasn’t fast enough!

I am on LEAP15.2, but I doubt there is much difference with Tumbleweed.

I guess we are missing some information here about the background of your actions.

To begin with, why are you installing the package man-pages? It is normally installed during system installation. I never did such an installation outside of the system installation, nor did I ever direct call mandb, I all leave those actions to the normal installation procedures (if ever needed). Nevertheless I never had and any missing man pages. And

man ln

works here.
Thus my suspicion that you did something that initiated you to do that explicit installation of man-pages in the first place.

Are you on a different version than me? On TW, I see this:

> rpm -ql coreutils | grep -i 'man1/ln'

That file is not in coreutils, but on TW, it's in coreutils-doc.

> rpm -ql coreutils-doc | grep -i 'man1/ln'


When I built this system, I started from a minimal icewm installation. Apparently, man-pages and coreutils-doc are not part of that installation. Also, apparently the man pages are in different packages in TW and LEAP as I pointed out in my previous post.


This could be the important point in the whole story. Something that not many people do. This way of working could thus reveal a bug that normally nobody encounters.

I’ve been installing Fedora MATE for years with an automated script that does a minimal cli installation first, then adds my custom set of packages from the command line. When I switched to openSUSE, I installed the minimal X system, then added MATE onto that. The initial installation did install coreutils automatically, I can see it in the zypper history as being installed in the first transaction. However, man-pages and coreutils-doc were never installed until partway through this thread.

Perhaps this is a bug in the installation of that minimal X system from the installation media?


That is what I suggested.

I think its no bug.
In Leap there is no coreutils-doc rpm, in Tumbleweed it is and the man-pages are in the files section of the doc-package.

So maybe minimal means as less as possible and ln --help is working without man-pages?

From my experience installing openSUSE in a non-standard (or minimal) way can yield “quite unexpected results”.

I installed all my Tumbleweed systems with “–no-recommends” set right from the beginning (i.e. before the installer starts to copy stuff to the disc). Although i had clearly choosen to install a graphical GUI (Plasma-desktop) there was no login manager installed. Many language packages were missing although i had selected “German” and lots of other quite basic packages (like vi) were not installed.

I found discussions on this on the mailing list and related bugs in bugzilla. However the bottom line of all that was: “Who chooses to do a non-standard installation has to live up with the consequences.”

Nevertheless i still install that way because it saves me 30% of disc space. And what’s even more important quite a lot of bandwidth and time to keep my system up to date.



This is your mistake.
If you want to install a DE(except for Cinnamon) in openSUSE,
You should install the pattern for that DE… using either zypper or the YaST Software Manager (patterns view).

I haven’t checked what exactly is left out in the minimal X system, but it’s reasonable that’s all it does… install the basics for X and nothing more on top of a text only “server role” system which I know does not install the extra documentation.


When installing an alternative DE using the YaST Software Manager, the following link is what it would look like during the initial install.
If you invoked YaST Software Manager after installing something else, should look very similar.

In fact,
In this screenshot, you’ll even see the MATE patter displayed for selection.