0

For example, for the read man page, I have a single one for read(2), two of the same for read(1) and two of the same for read(n). This has led to some performance and timing issues. I believe it has to do with dependency-management by homebrew, but I am not sure. For example, running

$ time man -k ^
makewhatis: /Library/TeX/texbin/man: Not a directory
DeRez(1)                 - decompiles resources (DEPRECATED)
... tens of lines of output
git-branch(1)            - List, create, or delete branches
man -k ^  0.43s user 1.27s system 37% cpu 4.511 total

which does not seem normal. Anyone else?

8
  • Do you have MANPATH set? If so. will you edit your post with its value, and what are the results of the command- manpath .
    – fd0
    Commented Apr 25, 2023 at 3:24
  • MANPATH is not set. Results of command: /Library/Frameworks/Python.framework/Versions/3.11/share/man:/usr/local/share/man:/usr/share/man:/Library/TeX/texbin/man:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share/man:/Library/Developer/CommandLineTools/usr/share/man. So it seems that the non-directory is on there. Commented Apr 25, 2023 at 3:37
  • What kind of performance and timing issues do you face?
    – nohillside
    Commented Apr 25, 2023 at 6:59
  • man -k ^ searches through all man pages, so it has to open over 3000 text files which will take some time. grep . /usr/share/man/*/* probably takes a comparable long time.
    – nohillside
    Commented Apr 25, 2023 at 7:02
  • I believe it was just an unusual optimization by emacs @nohillside. It was running man -k ^ as an "auto-complete" feature when I type M-x man <RET> 2 (for getting a specific numbered man page), so I gave it advice to turn it off. Commented Apr 25, 2023 at 20:25

2 Answers 2

1

They're not duplicates. Their existence is not leading to any performance or timing issues. Nor does it have anything to do with dependency management by Homebrew.

They are from different sections of the manual. The manual sections are defined as:

   1      User Commands
   2      System Calls
   3      C Library Functions
   4      Devices and Special Files
   5      File Formats and Conventions
   6      Games et. Al.
   7      Miscellanea
   8      System Administration tools and Deamons

So the man page for read(1) is for the command-line read command. The man page for read(2) is the read system call. The man page for read(n) is from TCL.

9
  • What I mean is I have duplicate read(1) and duplicate read(n). As I have 2 of the first and 2 of the last ... I thought that was clear from my question, Commented Apr 25, 2023 at 1:14
  • I can clearly see this when in emacs, using man-mode to scroll through them. Commented Apr 25, 2023 at 1:52
  • Having two man pages is not a problem. All it means is that in the path that man constructed, there are two (or more) of an entry, probably provided by different software installs. They don't cause any slowdowns, they don't take up enough space to matter. Commented Apr 25, 2023 at 4:02
  • Well, here is some additional output: % time man -k ^ | wc 12434 101864 923700 man -k ^ 0.67s user 1.40s system 103% cpu 1.991 total so I feel like it is at least some sort of problem ... speaking to others, that takes about 0.1s on their system. I am not sure why the total time is nearly 2s when the user and sys time is .03s Commented Apr 25, 2023 at 4:25
  • The man page for man tells you how to configure it. You can also drop path specificatioins as detailed in the man page for path_helper. Commented Apr 25, 2023 at 4:30
1

Well, to my surprise, I do have the same issue. Briefly looking into the issue-

[crystalwell:fd0] $ man -k tcsh
tcsh(1)                  - C shell with file name completion and command line editing
tcsh(1)                  - C shell with file name completion and command line editing

Two directories mirror each other-

/usr/share/man/man1

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/share/man/man1

Thinking about this I realize that makewhatis can't write its database to a readonly filesystem. In fact, makewhatis seems to be disabled on my system.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .