2012/02/08 追記→詳細
Cygwin1.7.9において
/etc/man.conf
に
JNROFF /usr/bin/groff -DeucJP -Tutf8 -mandoc
と記述すれば、日本語manが表示されるが、レイアウトが崩れるので、これを修正しようと試みた
個人的にバージョンダウンとかは嫌いなので、新しいバージョン、新しいツールを導入する方向。
groff 1.21のインストール
別マシンにインストールしてあるUbuntu 11.10では日本語manのレイアウト崩れは起こっていない。 そこでgroffのバージョンを確認すると1.21となっていたので、バージョンアップすればいけんじゃね?
ということでインストールしてみた。
手法としては
- 旧バージョンと共存させる
- 新バージョンに完全に置き換える
の2つがあると思う。
「倒れるときは前のめり」というモットーの元?、私は「2.」で行くことにする(とか何とか言いつつしっかり
C:\Cygwin
はバックアップ取っといたけど)
インストールの前に
gcc4、make辺りは必要だと思うので、インストールしてないなら、インストールしておく。
また、新バージョンに置き換える場合はgroffをアンインストールしておく(groff-coreもいらんかも)。
apt-cyg install gcc4 make
apt-cyg remove groff
apt-cygを導入してない場合はsetup.exeを使用する。apt-cygの導入方法についてはここ参照。
インストール
Cygwinのパッケージはないので、ソースコードからビルドする。
wget ftp://ftp.ring.gr.jp/pub/GNU/groff/groff-1.21.tar.gz
tar -zxvf groff-1.21.tar.gz
cd groff-1.21
./configure --prefix=/usr
make
make install
旧バージョンと共存させる場合は./configure
の際のprefixを変える(指定しなければ/usr/local
みたい)。
また、/etc/man.conf
を編集しておくこと(置き換えの場合は不要)
一応
which groff
groff --version
として、きちんとインストールされてるのを確認しておく。
スクリーンショット
man man
としたときの比較
変更前(groff 1.20.1)
変更後(groff 1.21)
だいぶましになったが、特に英語と日本語が混じっている行がおかしいのと、インデントの効いていない行があ る(スクリーンショット内にはないけど、ウィンドウサイズを79x24にして、下の方にスクロールしたら確認でき ると思う)。
man-dbのインストール
再びUbuntu 11.10にて、man
のバージョンを確認すると2.6.0.2だった。Cygwinのバージョン(1.6g)とだいぶ違う。
どうやらUbuntu 11.10に入ってるmanのパッケージ名は正確にはman-dbというらしい
man-dbは何か設定方法が違うっぽい(/etc/manpath.conf
しかない??)が、設定項目がないと言うことはデ
フォルトで使えるようになってるんだろう。ということで、とりあえずインストールしてみる。
準備
まずはmanをアンインストール。あとDBのライブラリが必要なのでインストールする。 Ubuntu man-dbの依存関係を見ると、gdbmがいいのかな? (db4.5でもconfigureまで通るのは確認した)
apt-cyg remove man
apt-cyg install libgdbm-devel
また、libpipelineというライブラリがいるみたいだが、Cygwinのパッケージにはない。ググると http://fd0.x0.to/cygwin/というところにあったので、これを使用する (いいのかな?)
apt-cyg -m http://fd0.x0.to/cygwin/ install libpipeline-devel
インストール
man-db 2.6.0.2のソースコードをダウンロード。
http://download.savannah.gnu.org/releases/man-db/man-db-2.6.0.2.tar.gz
が公式っぽいので、そこからダウンロードしようとしたけど、出来なかったので、
http://sourceforge.jp/projects/sfnet_buluoos/downloads/0.3/src/man-db-2.6.0.2.tar.gz/
からダウンロード。
$ cd <man-db-2.6.0.2.tar.gzのあるディレクトリ>
$ tar -zxvf man-db-2.6.0.2.tar.gz
$ PKG_CONFIG=/usr/bin/true \
libpipeline_CFLAGS='' \
libpipeline_LIBS='-lpipeline' \
./configure --prefix=/usr --libexecdir=/usr/lib \
--docdir=/usr/share/doc/man-db-2.6.0.2 --sysconfdir=/etc \
--disable-setuid --with-browser=/usr/bin/lynx \
--with-vgrind=/usr/bin/vgrind --with-grap=/usr/bin/grap
$ make
$ make install
DBのライブラリ(ヘッダーなど含む)が複数ある場合はgdbm→db5→db4→・・・の順でヘッダファイルを検索するみたい。
特定したい場合はconfigureで--with-db=db4
とか指定すればいいみたい(未確認)。
参考ページによるとmake check
としたらきちんとmakeされてるかどうかを確認できるらしいので、不安なら
make install
の前に確認する。
一応
which man
man --version
としてインストールを確認。
スクリーンショット
man man
したときのスクリーンショット
びゅーてほー
あと、manのマニュアルがman-dbのものに自動的に切り替わってる。素晴らしい。
設定ファイルは/etc/man_db.conf
。全く設定せずに上記の画面が出た。やっぱりこうでなくっちゃ。
追記(2012/02/08)
JM Projectの日本語ドキュメントを/usr/share/man/ja_JP.UTF-8
などに
インストールしていると、man ls
などとしたときに文字が化ける。
ディレクトリ名をja_JP.UTF8
→ja_JP.EUC-JP
にすると直るが、若干レイアウトがずれる(
変更後(groff 1.21)のような感じ)。
ディレクトリ名を色々いじってみると、ja
とすると正常に表示される。
man -d
でデバッグ出力して比較してみたが、特に違いはなかった。原因不明。
とりあえず直ればいいので、日本語ドキュメントは /usr/local/share/man/ja
に移動させた。
(なんとなくデフォルトのjaディレクトリに上書き(マージ)するのは嫌だったので)