日本語入力トラブルシューティング
X Window System 上で日本語の入力・変換ができなくなった場合、いろいろな原因が考えられます。どんなトラブルにも言えることですが、原因を突き止めるには問題点を絞りこむ必要があります。
では、解決法と言うよりは、むしろそうした場合にまず何を調べればよいかを説明し、解決のヒントを書いておきます。
前提事項
以下の説明は次の三つを前提にしています。
かな漢字変換システム(漢字入力システム)に Canna か FreeWnn を使っていること。
kterm などでの漢字入力に kinput2 を利用していること。
X Window System の起動時に実行されるスクリプト(xinitrc、Xsession など。以下では X 起動スクリプトと書く)は、自分で作ったものではなく、Vine 付属のものを使っていること。
とは言え、ほかのかな漢字変換システムをご利用の方や、自分で X 起動スクリプトをお書きになっている方にも、参考になるところがあるだろうと思います。
チェックリスト
入力・変換ができなくなった状況は?
さっきまで問題なく使えていて、突然入力・変換が出来なくなったのなら、その間に何をしたかを思い出してください。
~/.bash_profile と ~/.bashrc は存在しますか?
ホームディレクトリに .bash_profile と .bashrc は存在しますか。Vine の X 起動スクリプトはこの二つのファイルを利用しています。そのため、tcsh など bash 以外のシェルを常用する場合でも、この二つのファイルがないと、kterm などで日本語入力ができなくなります。
もし、ホームディレクトリに .bash_profile と .bashrc が存在しなかったり、両ファイルを大幅に書き換えている場合は、/etc/skel にVine 標準のものがありますから、それをコピーしてください。
問題のあるアプリケーションは?
全てのアプリケーションで入力・変換ができないのか、それとも特定のアプリケーションだけなのか、切り分ける事が重要です。
日本語入力・変換が可能かどうか、複数のアプリケーションで確認してください。
エラーメッセージは出ていませんか?
日本語入力・変換をしたとき、何かエラーメッセージが出ませんでしたか。もし出ているならば、重要なヒントです。
自力で解決できず、ML 等で尋ねる場合に備えて、メモを取るか、状況が許せば、コピー & ペーストを利用してテキストファイルなどに保存しておくと良いでしょう。
kterm で日本語入力が出来ますか?
かな漢字変換システムの Canna や Wnn は、サーバ・クライアント方式を採用しています。サーバーはそれぞれ cannaserver と jserver です。
クライアントについて言うと、Emacs は自前のかな漢字変換クライアントを持っていますが、kterm は kinput2 を利用します。また、kinput2 はほかの多くのアプリケーションでも日本語入力に利用されています。
Vine では最初から kterm と Emacs で日本語が使えるようになっています。
そこで、kterm でなら日本語入力が出来るけれど、それ以外の特定のアプリケーションで日本語が使えないのなら、たぶんそのアプリケーションの問題です。日本語入力に対応していないのかもしれません。もっとよくあるのは、アプリケーションの設定が不適切な場合です。たとえば、/usr/X11R6/lib/X11/ja/app-defaults にあるリソースファイルで international、fontSet、inputMethod などの設定をしていないからということが考えられます。
Emacs で日本語入力ができますか?
Emacs で日本語入力が出来るのに、kterm では出来ないなら、kterm かkinput2 の問題です。kterm だけでなく、mozilla、sylpheed などでも日本語が使えないようなら、たぶん kinput2 の問題でしょう。
setime の状態は?
次のコマンドを実行します。
$ setime status
[現在の漢字入力システム]、[パッケージのインストール状況]、及び日本語変換に関係のある[環境変数]のいくつかを確認できます。
ログの内容は?
次のコマンドを実行してみて下さい。
$ less ~/.xwm.msgs
~/.xwm.msgs には、Vine の X 起動スクリプトが出すメッセージのうち、主に日本語入力関係のものが記録されています。かな漢字変換サーバが動いているかどうか、kinput2 の実行に成功しているかどうかがわかります。(参考:)
プロセスの状態は?
念のため、以下のコマンドで状況を確認して下さい。
Canna の場合
$ ps axw | egrep 'cannaserver|kinput2'
934 ? S 0:00 /usr/sbin/cannaserver
1127 tty1 S 0:00 kinput2 -canna -cannaserver localhost
Wnn の場合
$ ps axw | egrep 'jserver|kinput2'
810 ? S 0:00 /usr/bin/jserver
14973 pts/1 S 0:00 kinput2 -wnn -jserver localhost -wnnenvrc4 /etc/FreeWnn/ja/wnnenvrc
上のような結果になれば、かな漢字変換サーバや kinput2 が動いています。結果が「ログの確認」と異なるときは、ネットワークに問題があることが疑われます。「ネットワーク設定の確認」の項を参照してください。
かな漢字サーバが動作していない場合、その起動法については、を見てください。 kinput2 が動作していない場合は、setime を使えば簡単に起動できます。
$ setime canna
$ setime wnn
なお、コマンドラインで setime とだけ打ち込むと、使用法が表示されます。
setime は Vine Linux 独自のシェルスクリプトです。
言語設定は?
次のコマンドの実行結果を確認して下さい。
$ echo $LANG
Vine の X 起動スクリプトは、環境変数 LANG が ja_JP.eucJP でないと、kinput2 を起動しないようになっています。/etc/sysconfig/i18n の内容をLANG="ja_JP.eucJP" に書き換えてください。
IMの確認
$ echo $XMODIFIERS
kinput2 を使っている場合、結果が @im=kinput2 にならなかったら、ちょっと変です。Vine の X 起動スクリプトは、そうなるように書いてありますから(Vine 2.1.x は例外)。
とりあえずの対処法は、~/.bash_profile に export XMODIFIERS="@im=kinput2" という行を書き込んで、ログインし直すことです。そのあとで、Vine の X 起動スクリプトを追ってみてください(テキストログインなら /etc/X11/xinit/xinitrc から、グラフィックログインなら /etc/X11/wdm/Xsession などから)。どこかにおかしいところがあるのかもしれません。
VJE-Delta を使用している場合
Vine 2.6 でVJE-Delta をご使用の方は、/usr/share/vine/imelib を見てください。XMODIfIERS="@im=vje" という行があるはずです。そこを XMODIFIERS="@im=vje" と修正してください。
ネットワーク設定の確認
以下のコマンドの実行結果を確認して下さい。
$ cat /etc/hosts
$ /sbin/ifconfig
Linux のかな漢字変換は、かな漢字変換サーバとクライアントとが通信し合うことで実現されています。そして、マシンが自分自身と通信するために使用するインターフェースが、ループバック・インターフェースなのです。
ループバック・インターフェースは ifconfig では lo として表示され、そのアドレスが、127.0.0.1、ホスト名が localhost です。
ですから、ifconfig の結果に lo の項目が表示されなければなりません。
また、たいていの場合、/etc/hosts に 127.0.0.1 localhost localhost.localdomainといった行が存在する必要があります。
ループバック・インターフェース lo の復活法については、Q: ifconfig を実行しても、lo の情報が表示されません。どうしたら、lo を復活させることが出来るでしょうか?で説明しています。そちらをご覧ください。
以上のことをやってみれば、問題点がかなり絞れるでしょう。うまくすると、解決してしまうかもしれません。もし、解決しなかった場合は、上に書いた検査の結果をつけて、vine-users ML で質問してみてください。
かな漢字変換サーバの起動
かな漢字変換サーバを起動するには、ルートユーザになってから、以下のコマンドを実行します。
かな漢字変換システムが Canna の場合
# /etc/rc.d/init.d/canna start
かな漢字変換システムが FreeWnn の場合
# /etc/rc.d/init.d/FreeWnn start
ここでエラーメッセージが出るかもしれませんが、そのメッセージが解決の手がかりになります。
かな漢字変換サーバーをマシンの起動時から動くようにするには、以下のようにします。まず現在の状態を確かめてください。ここでは Canna を例に取ります。
# /sbin/chkconfig --list canna
canna 0:off 1:off 2:off 3:off 4:off 5:off 6:off
上のようにすべて(とくに 3 と 5 が)off になっていたら、# /sbin/chkconfig --add cannaとしてください。これでマシンの起動時からかな漢字変換サーバが動くようになります。
FreeWnn を利用する場合、それぞれ canna を FreeWnn に置き換えて下さい。
なお、Vine の X 起動スクリプトを使用している場合は(言い換えれば、X 起動スクリプトを自分で書いていない場合は)、かな漢字変換サーバが動いていれば、kinput2 は X を起動したときに自動的に実行されます。