[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:01632] Re: rc.local?
やなぎはらです。
From: NABETANI Hidenobu <nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Message-ID: <199708251213.VAA02724@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
nabetani> > ・perlを動かすと、
nabetani> >
nabetani> > perl: warning: Setting locale failed for the categories:
nabetani> > LC_CTYPE LC_COLLATE
nabetani> > perl: warning: Please check that your locale settings:
nabetani> > LC_ALL = (unset),
nabetani> > LC_CTYPE = (unset),
nabetani> > LC_COLLATE = (unset),
nabetani> > LANG = "ja_JP.ujis"
nabetani> > are supported and installed on your system.
nabetani> > perl: warning: Falling back to the "C" locale.
nabetani> >
nabetani> > というメッセージがでる。未解決。
nabetani>
nabetani> LC_ALL=C
nabetani> LC_CTYPE=C
nabetani> LANG=ja_JP.ujis
nabetani>
nabetani> に環境変数を設定することで、メッセージは出なくなるはずです。それ以外は
nabetani> 特にいじってません。
こうすると、man-db-ja_2.3.10-39.3 では、日本語manデータの参照が
できなくなります。
man では、 もともと LC_MESSAGES 環境変数をチェックしていました。
しかし、ja_JP.ujis の localeファイルが存在しないため、
setlocale(LC_MESSAGES, "")では、正常に終了しないのです。
manは、setlocale()の戻り値を internal_locale として使うのですが、
上記の理由で、manではja_JP.ujisは使われません。
で、仕方なく LANG=ja_JP.ujisでかつ setlocale() の戻り値が NULL の
場合のみ LANGを internal_locale として用いるように改造しました。
こういうことになっているので、LC_ALL=C が設定されると、
setlocale()の戻り値として "C" を返し、LANGは参照されないのです。
ちなみに、man -L<locale_name> で指定した locale も優先されます。
ちなみに、locale は、
1. LC_ALLでセットされているもの
2. LC_xxでセットされているもの
3. LANGでセットされているもの
という順番で決定されます。
もっと賢い改造方法があれば、フォローしてください。
#localeファイルができあがると、ま〜るいおさまる。
+-----------------------------------------------------------------------+
Yoshiaki Yanagihara Debian JP Project
E-mail: yochi@xxxxxxxxxxx [Japanese] http://www.debian.linux.or.jp/
yosiaki@debian.org [English ] Sorry, now under construction.