Hi, The "whatis" database on my system is horribly incomplete. For instance whatis gcc returns "Nothing appropriate". The problem is as follows 1. The first line of /usr/sbin/makewhatis is NOT "#!/bin/sh" 2. The /etc/cron.weekly/makewhatis cronjob executes makewhatis -u This won't work! Looking at the source code, makewhatis -u only adds man pages that were modified in the last 24 hours. Thus running makewhatis -u on a *weekly* basis is fundamentally flawed! I suggest that you 1. Add "#!/bin/sh" to the top of /usr/sbin/makewhatis 2. Move the weekly cronjob to a daily one. (I further recommend running "makewhatis -u -w" instead of just "makewhatis -u" as is currently done). 3. Add a monthly (or weekly) cronjob to completely regenerate the whatis database, so as to remove outdated entries, and add possibly missing entries. This can be done by putting the lines #! /bin/sh exec nice /usr/sbin/makewhatis -w in /etc/cron.monthly/makewhatis The man & whatis database is extremely useful. Please fix it (as suggested above), Thanks, GI
(1) doesnt matter at all, the kernel will properly execute the file as a shell script
(In reply to comment #1) > (1) doesnt matter at all, the kernel will properly execute the file as a shell > script Actually, (1) gave me trouble on my system (probably because the shell root uses is tcsh). Before doing (1), running makewhatis gave program=makewhatis: Command not found. dm=: Command not found. for: Command not found. do: Command not found. d: Undefined variable. Problems went away after (1). GI
#!shebang handling has been fixed and sent upstream
1. I noticed that makewhatis.cron still runs "makewhatis -u", and not "makewhatis -u -w". On my system omiting the -w causes makewhatis to not index Qt3, and some gcc man pages. 2. You still don't COMPLETELY REBUILD the whatis database frequently. If you don't you could miss a lot of man pages. For example, user installs foo, and turns off his computer BEFORE the daily cron job has run. He turns on the computer again two days later. When the daily cron job runs, it will NOT index man pages of foo. If you want to fix the problem, you should run "makewhatis -w" every month (or every day), and "makewhatis -u -w" every day. Just running "makewhatis -u" every day is flawed, and almost pointless. The ideal solution will be for makewhatis to store it's last run time, so that running "makewhatis -u -w" every day will generate the index correctly... GI
that's funny, i dont recall saying i did anything other than changing the shebang in the file ... so why are you telling me things i already know ? as for adding -w, i dont see the point ... makewhatis already has the same logic as `man --path`
(In reply to comment #5) > that's funny, i dont recall saying i did anything other than changing the > shebang in the file ... so why are you telling me things i already know ? Lol. I just emerge --synced, and saw your fixes. For some reason I assumed that your message meant you were "done with it". That of course set me panicking because its still broken on my system ... > as for adding -w, i dont see the point ... makewhatis already has the same > logic as `man --path` Strangely it doesn't seem to work that way on my system. When I add a -v too, it only looks in /usr/share/man and /usr/local/man. Adding -w makes it look in all the other directories too ... Thanks for fixing it :) GI
Looks like this was fixed long ago, if not, please reopen.