[man/whatis] nothing appropriate のエラーに出会ったの巻

スポンサーリンク

manコマンドには「-f」オプションや「-k」オプションがあり、それぞれwhatisデータベースの中から
語句を検索することが出来るオプションだ。

man -f man とすれば、「man」がどのセクションに存在しているかが分る。

$ man -f man
man                  (1)  - format and display the on-line manual pages
man                  (1p)  - display system documentation
man                  (7)  - macros to format man pages
man                 (rpm) - A set of documentation tools: man, apropos and whatis.
man-pages           (rpm) - Man (manual) pages from the Linux Documentation Project.
man.config [man]     (5)  - configuration data for man
$

man -k manとすれば、whatisデータベースの説明に「man」が含まれるものをリストする。
「man」を含むものはとても多いので、今回は「apache」で検証する

$ man -k apache
CGI::Apache          (3pm)  - Backward compatibility module for CGI.pm
DBI::ProfileDumper::Apache (3pm)  - capture DBI profiling data from Apache/mod_perl
ab                   (1)  - Apache HTTP server benchmarking tool
apachectl            (8)  - Apache HTTP Server Control Interface
apr                 (rpm) - Apache Portable Runtime library
apr-util            (rpm) - Apache Portable Runtime Utility library
apxs                 (8)  - APache eXtenSion tool
httpd                (8)  - Apache Hypertext Transfer Protocol Server
httpd               (rpm) - Apache HTTP Server
httpd-devel         (rpm) - Development interfaces for the Apache HTTP server
logresolve           (1)  - Resolve IP-addresses to hostnames in Apache log files
mod_bw              (rpm) - Bandwidth Limiter For Apache
mod_ssl             (rpm) - SSL/TLS module for the Apache HTTP Server
mod_suphp           (rpm) - Apache module that enables running PHP scripts under different users
rotatelogs           (8)  - Piped logging program to rotate Apache logs
vzdummy-apache      (rpm) - Dummy package to tune apache MaxClients
$

これらのオプションは、 whatisデータベース があるから使える。
もし、whatisデータベースが作成されていない場合には、以下のエラーになる。

$man -f man
man: nothing appropriate
$

この場合には、「makewhatis」コマンドを用いてデータベースを作成してあげましょう。
意外と処理に時間がかかるので、画面に変化がおきず「あれ?」と思うこともあると思いますので、
「-v」オプションをつけると安心して待てると思います。

# makewhatis -v

makewhatisデータベースは自動で更新することが出来ます

毎日実行される実行可能スクリプトが収められたディレクトリ、/etc/cron.daily/
毎週実行される実行可能スクリプトが収められたディレクトリ、/etc/cron.weekly/

上記2ディレクトリの下に「makewhatis.cron」というファイルがあるはず。

もし、無ければ作成しよう。
もし、あるけれども実行権限が付与されていない場合には、以下コマンドで実行権限を付与しよう。

# chmod +x /etc/cron.*/makewhatis.cron

最後に、該当ファイルが無い人のために以下ファイルの内容を記載します。

/etc/cron.daily/makewhatis.cron
#!/bin/bash

LOCKFILE=/var/lock/makewhatis.lock

# the lockfile is not meant to be perfect, it's just in case the
# two makewhatis cron scripts get run close to each other to keep
# them from stepping on each other's toes.  The worst that will
# happen is that they will temporarily corrupt the database...
[ -f $LOCKFILE ] && exit 0
trap "{ rm -f $LOCKFILE ; exit 255; }" EXIT
touch $LOCKFILE
makewhatis -u -w
exit 0
/etc/cron.weekly/makewhatis.cron
#!/bin/bash

LOCKFILE=/var/lock/makewhatis.lock

# the lockfile is not meant to be perfect, it's just in case the
# two makewhatis cron scripts get run close to each other to keep
# them from stepping on each other's toes.  The worst that will
# happen is that they will temporarily corrupt the database...
[ -f $LOCKFILE ] && exit 0
trap "{ rm -f $LOCKFILE; exit 255; }" EXIT
touch $LOCKFILE
makewhatis -w
exit 0

コメント

タイトルとURLをコピーしました