Tuesday, November 14, 2006

Ubuntsu Linux でのロケール設定

.bash_profile で

LC_ALL=ja_JP.eucJP

というような 設定にしていたのだが、たとえば perl を起動したときに

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "ja_JP:ja:en_GB:en",
LC_ALL = "ja_JP.eucJP",
LC_MESSAGES = "C",
LC_CTYPE = "ja_JP.eucJP",
LANG = "ja_JP.eucJP"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

のような Warning が発生していた。svn コマンドを実行したときも似たようなメッセージが出た。

これは、/usr/lib/locale/ にロケールの定義がないことが原因らしい。デフォルトでは

en_US.utf8/
ja_JP.utf8/

という2つがあり、この中でそれぞれのロケールが定義されている。そこで、/etc/locale.gen ファイルに

ja_JP.eucJP EUC-JP

というエントリを定義して、ルート権限で locale-gen コマンドを実行した。これにより新しく ja_JP.eucjp/ ディレクトリが作成され、先ほどの Warning メッセージは出なくなった。

ただ、最初のうち、local.gen ファイルを編集し、locale-gen コマンドを実行しても ja_JP.eucjp/ は作成されなかった。locale-gen コマンドに直接 ja_JP.eucjp を指定したりして、いろいろ試しているうちに成功した。原因はよく分からない。。。

No comments: