Gentooでman pageを日本語表示する

前置き

localeをUTF8に設定すると、いろんなソフトが日本語でメッセージを出してきます。しかしmanコマンドは例外で、もうひと手間かける必要があります。その手順です。

本文

私の環境の場合、localeをja_JP.utf8に設定しております。manは、下記のような感じで失敗してました。

 $ man ls
 groff: can't find `DESC' file
 groff: fatal error: invalid device `nippon'

主な原因は3つです。

  • manが文章整形に使うツール(groff)が日本語対応してない可能性がある
  • man pageはEUCで提供されている
  • ページャ(less)が日本語に弱い

まずgroffのUSEフラグを疑いまして、/etc/make.confを見直しました。

  • /etc/make.conf
 USE="xxx yyy -zzz cjk nls"       # cjkとnlsを追加
 LINGUAS="ja"                     # jaに設定(nkfもここを見る)

groffのver1.20.1は日本語に対応してないらしいので、マスクします。

  • /etc/portage/package.mask
 >=sys-apps/groff-1.20.1

で、emergeします。

 # emerge --update --newuse groff man-pages man-pages-ja

EUCロケールは組み込んでなかったので、組み込みました。また、日本語に強いページャlvをemergeしておきます。

 # vi /etc/locale.gen         →EUCの行を生かして保存
 # locale-gen
 # emerge app-text/lv

システムのページャをlessからlvに替えるため、/etc/env.d/00basicを編集します。本当なら、man用のページャだけをlvに替えたいところですが…。

  • /etc/env.d/00basic
 PAGER="/usr/bin/lv -c"

manがgroffを起動するときだけ、一時的にlocaleをEUCに変えるように設定します。

  • /etc/man.conf
 JNROFF  LC_ALL=ja_JP.eucJP /usr/bin/groff -Tnippon -mandocj

ちなみに、/etc/man.confにもPAGERという変数がありますが、ここをlvに変えても効果は無いようです。

最後に、環境変数の変更を適用します。

 # env-update && source /etc/profile

これで、日本語のman pageが読めるようになりました。ページャが変わったので、ちょっと違和感がありますけどね。

Last modified:2010/05/02 19:01:11
Keyword(s):
References:[サーバ管理・Linux関連] [Thinkpad T60にGentooをインストールする]
This page is frozen.