LC_CTYPE: cannot change locale (ja_JP.UTF-8): No such file or directory

yum で update 中に落ちた。
起動後にupdateしなおしたものの

-bash: warning: setlocale: LC_CTYPE: cannot change locale (ja_JP.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (ja_JP.UTF-8): No such file or directory
-bash: warning: setlocale: LC_MESSAGES: cannot change locale (ja_JP.UTF-8): No such file or directory
-bash: warning: setlocale: LC_NUMERIC: cannot change locale (ja_JP.UTF-8): No such file or directory
-bash: warning: setlocale: LC_TIME: cannot change locale (ja_JP.UTF-8): No such file or directory

運悪くLC系のアップデート中だったらしい。
CentOS6の様に i18n でゴニョしようとしても
# cat /etc/sysconfig/i18n
cat: /etc/sysconfig/i18n: そのようなファイルやディレクトリはありません
なので、そうすれば古い仕組みで見かけ上うまくいくかもしれないけど・・・
# locale -a  や # grep ja_JP はそれなりに動作するが
# locale -a | grep ja_JP などとすると
LC_CTYPEが使えないせいで、上のメッセージだけ表示して中止。
同じ理由なのだろう。
poweroff しても
電源が落ちない。
コレではマズいので
/usr/share/i18n/locales に ja_JPなどが多数あったので
# localedef -f UTF-8 -i ja_JP /usr/lib/locale/ja_JP.UTF-8
してsetlocaleを使っているプログラムなら大丈夫のハズだが・・・
SSHで接続すると、まだwarningが2つ出てしまう。
ググってみると、glibcのリンクがまだイカレている可能性があるようだ。
yum install glibc-common してリンクを修正させた後に
localedef -f UTF-8 -i ja_JP ja_JP
するとやっとwarningが消えた。
poweroff
で電源も落ちた。
これでいいハズ。
なぜシェルからコマンドがうまく動作しなくなったのか?
原因はLC_CTYPEなどを使ってメッセージを日本語にできる仕組みを組み込んでいるプログラムの場合、自分のプログラムミスでLC_CTYPEでエラーが出た場合を想定して上のエラーメッセージを出し throw させているんじゃないかな?
なので、トリアエズ日本語にするのはいいけど、
どんな仕組み(実装)なのか判っていないと、
何気に見えないところでコマンドが通らなくなっていたりすると、ヤバすぎだね!(汗
 
 
 
 




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA