YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

自前ビルドでerl -manを動くようにする

はじめに

Erlangのドキュメントってすごく良く書いてあるんだけど、HTMLの物って検索がブラウザだのみだったりして好かないのでコマンドラインでそのまま見れる"erl -man"コマンドで見ようとおもったらこんなエラーがでやがった。

$ erl -man lists
No manual entry for lists

これの直し方が分からなくてちょっと手間取った。

作業ログ

ソースからドキュメントをビルドする

よくよく調べてみたらここに記述があった。ここの3.6参照。

これにしたがってソースディレクトリに行ってビルド。

$ cd /opt/erlang/src/otp_src_R14B
$ make docs
$ make install-docs
$ erl -man file
file(3)                           Erlang Module Definition                                    file(3)

NAME
       file - File Interface Module

DESCRIPTION
       The module file provides an interface to the file system.
...

できた。

ミスった作業

format_man_pagesを使う

ググってたら昔のバージョンではformat_man_pagesでやりました、的な記載を見つけたのでやってみた。

$ mkdir $ERLANG_HOME/man
$ cd $ERLANG_HOME/lib/erlang/misc
$ ./format_man_pages $ERLANG_HOME
Formatting manual pages (this may take a while...)

あれ?終わったのか?あまりにも一瞬でできたので怪しい。中身を見てみると...

$ ls $ERLANG_HOME/man/*
/opt/erlang/R14B/man/cat1:

/opt/erlang/R14B/man/cat3:

/opt/erlang/R14B/man/cat4:

/opt/erlang/R14B/man/cat6:

全部空じゃねえかよ。

manファイルをダウンロードして入れる

ここに作成済みのmanファイルがあるので落としてきて解凍。今回はR14Bなので

$ curl -O http://www.erlang.org/download/otp_doc_man_R14B.tar.gz
$ tar xzf otp_doc_man_R14B.tar.gz
$ mv ./otp_doc_man_R14B/man $ERLANG_HOME
$ export MANPATH=$ERLANG_HOME/man:$MANPATH
$ erl -man lists
No manual entry for lists

あれおかしいな?