CentOS6.6で急に日本語入力ができなくなった話

 先日、CentOS6.6のマシンで作業していたら、日本語入力ができなくなっていることに気が付きました。

 正確には、半角キーを押したときに若干のラグが入り、入力モードが切り替わらなくなっている感じですね。

 なんか設定が狂ったのかな? と思って日本語キーボードの設定あたりを見直しても特におかしいところは無い……

 じゃあ入力メソッドがおかしいのかしらん? とIM Chooserから「入力メソッドの個人設定」を見ようかと思ったら、このボタンが押せない。正確には、押せないというよりも押せるけど、何の反応もないような感じなのです。

 再起動してみたり、IBusやIM Chooserを再インストールしてみても結果は変わらず、これはOSの再インストールしかないか? と絶望していたのですが、ふと思い立ってコンソールからIM Chooserを実行し、ボタンを押してみました。すると、pythonがらみのエラーがコンソールに表示されたのです。

 そういえば、日本語入力ができなくなるちょっと前にpython3をインストールしていた……
 
 しかも、python3へのシンボリックリンクpythonという名前で作成している……

 そしてどうやらIM Chooserはpythonで動いているようだ……

 これで原因がわかりました。

 CentOS6.6に標準で付いているpythonは2.6なのです。もちろん、IM Chooserもpython2で動くように作られているのですが、python3はpython2から大きく仕様が変わっており、python2で動くプログラムは基本python3では動かないのです。にもかかわらず、僕がpythonのコマンドをpython3へのシンボリックリンクで上書きしたせいで、python3を呼び出しに行くようになってしまい、おかしくなってしまった、というわけなんです。

 ここまでくれば対策は簡単で、python3へのシンボリックリンクの名前を変えてやればまた正常に動くようになりました。