More info...

2011-03-09

Ubuntu 10.10を英語表示で使っている人へ(メモ)

今朝、Ubuntuのパッケージを更新したところ、再起動後に日本語の表示に関する不具合に見舞われた。どのようなものかというと、
  • 日本語入力が強制的にibusからscimへ変更された。
  • ターミナルの表示で日本語が化ける。
  • Skypeで日本語入力が出来なくなる。
  • perlでロケールのエラーが出る。(下記参照)
  • それ以外の不具合はない。(FirefoxやGTKアプリなどの表示は問題なし。)
というちょっと中途半端な問題だった。ちなみにPerlのエラーはこんなやつ。(もちろん以前はこんなエラー出てなかった。)

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

悪戦苦闘の末問題を解決することが出来たので、同じ状況に陥った人は参考にしてもらいたいと思ったのでブログに書いておく。結論から言うと、これは英語のロケールで使ってる人にしか起こらないレアな問題だった。


不具合が起きるとあれやこれやと試すことになるが、今回の場合試して無駄だったのは次のようなものだ。

  • locale-gen en_US en_US.UTF-8
  • dpkg-reconfigure locales
  • fc-cache --force
  • sudo apt-get install language-selector=0.6.6 language-selector-common=0.6.6

/var/log/apt/history.logを見ると、今朝行ったアップグレードの中にlanguage-selectorが含まれていたので、こいつが如何にも怪しい。なのでダウングレードすればとりあえず直るかなーなどと考えたが甘かった。dpkg-reconfigureによってperlのエラーは出なくなったが、上記を全て実施しても文字化けは全然直らない。

仕方がないので「英語のGUIはいったん諦めて日本語ロケールにするか・・・メニューは英語のほうが見やすいんだけどな・・・」などと悲しみに打ち拉がれながらログアウトしたとき筆者が見たものはッ!!

なんと、ログイン時に指定するロケールがEN[UTF-8]からEN[iso-8859-1]に勝手に変更されていたのだった。筆者はふだん自動ログインを有効にしているので、自分でロケールを変更したということは断じてない。ロケールは、エンコーディングが異なるとは言え同じ英語なのでまったく気づかなかった。やられたぜ!!おそらくlanguage-selectorがアップグレードした際に変えられてしまったのだろう。

ロケールをEN[UTF-8]に戻すと、何事もなかったかのように正常になった。

3行でまとめると、

  • 今朝パッケージのアップデートをしたUbuntuユーザーで、
  • ターミナルなどで日本語が突然表示されなくなったら、
  • いったんログアウトしてロケールを確認するべし。

以上ッ!!

0 件のコメント:

コメントを投稿