Googleが公開する日本語入力エンジン(IME)「Google日本語入力」のオープンソース版「Mozc(モズク?)」が公開されていて、Ubuntuなどでは以前からインストールできたようですが、Debianではようやくsqueeze(現安定板)からまともにインストールできるようになりました。
バージョンアップしたらインストールしてみようとオープンソース版が公開されてから間もないころは思っていたのですが、いざバージョンアップしてみると案外忘れてしまうもので、squeezeを使い始めて数ヶ月が経過しました。
最近、パソコンで文章を書くことが増えてきて、Anthyの誤変換の多さにいらだちを覚えることが多くなったところで、ようやく思い出しました。
とはいえ、ただインストールするだけならば、以下のヘルプページに書いてあるとおりに機械的にコマンドを実行すれば、何も考えなくても簡単にできます。
それでは何をやっているのか分からず、ちょっと気持ちが悪いので、今後のためにその内容を調べてまとめてみることにしました。
LinuxBuildInstructions How to build Mozc on Linux
http://code.google.com/p/mozc/wiki/LinuxBuildInstructions
無駄な情報がかなり多くなりましましたが、インストール手順なは以下のようになります。(面倒なときには文章は無視して黒いところだけご覧ください^^)
なお、コマンド中の#はルートユーザとしてログインしている状態を表し、$は一般ユーザとしてログインしている状態を表しています。また、#は$sudo に置き換えることができます。)
1)依存パッケージをインストールする。
今回はソースコードをダウンロード、パッケージの作成、インストールという一連の作業をLinux端末からコマンドで連続して実行します。
そのため、途中で作業が中断してしまわないように、事前に必要なツールと、コンパイルを通すために必要なライブラリをインストールしておきます。
参考サイトでは大量のファイルがただ列挙してあり、私にはどのパッケージがどんな役割をしているのかはサッパリ分かりませんでした(-.-)
というわけで、すっきりしてから始めるために、最初にMozcのインストールに必要なパッケージについてまとめておくことにします。
【インプットメソッド】
Mozcはibusやscimなどのインプットメソッドフレームワーク(プラットホーム)上で動作する日本語変換エンジンなので、インストールするためにはいずれかをインストールしておく必要があります。
とりあえずヘルプページの指示に従って2つインストールしてみましたが、実際はいずれか一方があれば十分のようです。
IBus(ibus)
私は既にibusインプットメソッドをインストールしている状態だったので、ここではインストールしませんでしたが、ほかのインプットメソッド(プラットホーム)を使っていた場合はここでインストールしておきます。
SCIM(scim)
DebianではSCIM上でMozcを動せるので、SCIMもインストールしておきます。
#apt-get install ibus scim
【コンパイラ・インタプリタ】
gcc/g++(g++)
C/C++コンパイラ(g++をインストールするとgccも依存関係でインストールされる)
Python(python)
プログラミング言語Pythonのインタプリタです。
Debian(squeeze)には最初からインストールされています。
Mozcのビルドスクリプトはpythonで記述されているので、ソースコードをコンパイルするときに必要となります。
#apt-get install g++
【ライブラリ】
D-Busのライブラリ(libdbus-1-dev)
シンプルなプロセス間メッセージングシステム (開発用ヘッダ)です。
D-Busは複数のプログラム同士で情報をやり取りするためのプログラムで、これはそのライブラリの一つです。
IBusのライブラリ(libibus-dev)
IBusのライブラリです。IBusが依存していないものなので、別途インストールする必要があります。
SCIMのライブラリ(libscim-dev)
scimのライブラリです。scimを使わない場合は必要ないように思えますが、今回はdebuildコマンドでコンパイルも自動化しているので、scim用のパッケージも自動で生成してしまいます。
このため、コンパイルを通すにはこれも必須と考えられます。
Glib(libglib2.0-dev)
glibライブラリ(v2.0)です。
cURL(libcurl4-openssl-dev)
FlashPlayerの依存パッケージに「curl」がありますが、今回必要な「libcurl4-opensssl-dev」とは関係がないので、「curl」とは別途インストールします。
Zlib(zlib1g-dev)
Zilb圧縮ライブラリ。「zilb1g-dev」は「libcurl4-openssl-dev」の依存パッケージになっているので、指定しなくてもインストールされます。
OpenSSL(libssl-dev)
「libcurl4-openssl-dev」をインストールすると依存関係でインストールされるので、指定する必要はないようです。
ProtocolBuffers&GoogleC++TestingFramWork(protobuf-compiler,libprotobuf-dev,libgtest-dev)
Googleの配布するソフトウェアを動作させるときに必要なライブラリです。
zinnia(libzinnia-dev)
オンライン手書き文字認識エンジンらしいです。
Qt4(libqt4-dev)
Qt4ライブラリ。KDEデスクトップ環境で使われているライブラリですが、KDE4を使っていてもdevパッケージのほうはインストールされないようです。
Gnomeデスクトップ環境を使っている場合はQt4のライブラリはほとんど入っていないので、Qt4関連の多数のライブラリが依存関係でインストールされます。
以上をまとめて次のようにインストールします。(スペースの都合上複数列になっていますが、すべて一行分として入力しています)
#apt-get install libdbus-1-dev libibus-dev scim libscim-dev libglib2.0-dev libcurl4-openssl-dev zlib1g-dev libssl-dev protobuf-compiler libprotobuf-dev libgtest-dev libzinnia-dev libqt4-dev
【Debianパッケージ作成のためのツール】
今回は、Debianパッケージを簡単に作るために、debuildコマンドを使います。
このコマンドは「devscripts」というパッケージに含まれているのでこのパッケージをインストールします。
debhelper(debhelper)
debian-policyの規約に従ったDebianパッケージを容易に作成するためのツールです。
なお、これは下の「devscripts」をインストールすると依存関係でインストールされます。
devscripts
Debianパッケージ(.debパッケージ)を作成するためのツールです。
これをインストールすることにより、debuildコマンドを使用できるようになります。
#apt-get install debhelper devscripts
【その他】
gyp(gyp)
GenerateYourProject。
Makeファイルを生成するツールのようです。
Subversion(subversion)
ソフトウェアのバージョン管理システム「Subversion」を利用するためのSVNクライアントソフトのパッケージです。
今回はこれをインストールするとsvnコマンドが使えるようになるので、このコマンドを利用してリポジトリにアクセスし、ソースコードをダウンロードします。
#apt-get install gyp subversion
2)パッケージを作成する。
もちろん、Mozcのソースコードに付属するpythonスクリプトで手動でコンパイルやインストールもできますが、今回はパッケージ作成の勉強のためもDebianパッケージを作成する方法でインストールすることにしました。
ヘルプページではコマンドは連続して記述されていますが、それでは少しわかりにくいので、使用するコマンドについての簡単な説明を交えながら、コマンドを順に表示していくことにします。
【svnコマンド】
Subversionはソフトウェアのバージョンを管理するソフトウェアで、複数の人間が共同でソフトウェア開発をするときに使用します。
このため、ソフトウェア開発に携わっていない私のような個人的ユーザにはちょっと敷居が高いですが、その機能の一部程度ならばなんとか使えるようです。
$svn co
($svn checkout)
Subversionには、開発中のソフトウェアのソースコードの同じ箇所を同時に変更してしまわないように、誰かが作業中のファイルにロックを掛けて変更できないように管理する機能があります。
この機能がチェックアウト(checkout)やコミット(commit)と呼ばれる機能です。
チェックアウトはSubverstionが管理しているリポジトリ上で、リビジョンごとに管理されているファイルを、作業する人のローカルディスクにコピーする機能です。
一方、コミット(commit)は変更作業の終了後に、ローカルのディスクに保存されているファイルを、Subversionが管理している共有のリポジトリにアップロードして、変更点を反映させる機能です。
基本的に一般のユーザはファイルの閲覧(コピー)のみが許可せれているので、チェックアウト機能さえ覚えておけば支障はないと思います。
今回はこのチェックアウト(checkout)機能を利用して、インストールに必要なファイルを取得します。
なお、このコマンドで、チェックアウトしたファイルは、カレントディレクトリに保存されるので、大量にファイルをコピーする時には事前にファイルを保存するためのディレクトリを作成(mkdir)し、そのディレクトリに移動(cdコマンド)しておきます。
$mkdir -p ~/src/mozc
(mozcをダウンロードする作業ディレクトリを作成。-pは存在しない親ディレクトリを作成するためのオプション)
$cd ~/src/mozc
(mozcディレクトリに移動)
$svn co http://mozc.googlecode.com/svn/trunk/src
(リポジトリからソースコードをチェックアウト[coはcheckoutでもよい])
ただし、このパッケージ作成には、ディスクスペースを多く使うので、できれば1GB程度の空き領域があるパーティションに作業用ディレクトリを作成します。
基本的にはチェックアウトしたファイルはその後再利用することはないので、作業用のディレクトリ「/tmp」に作業用ディレクトリを作成しても問題はありません。
$mkdir -p /tmp/src/mozc
(mozcをダウンロードする作業ディレクトリを作成。-pは存在しない親ディレクトリを作成するためのオプション)
$cd /tmp/src/mozc
(mozcディレクトリに移動)
$svn co http://mozc.googlecode.com/svn/trunk/src
(リポジトリからソースコードをチェックアウト[coはcheckoutでもよい])
【debuildコマンド】
debuildは、ソースコードのコンパイル(ビルド)からDebianパッケージ(.deb)の構築までの行程を自動化するツールですが、その動作はビルド用のスクリプトに依存しているようです。
このため、ソースコードをコンパイルするgccだけでなく、スクリプトを実行するために必要なPython、そして、このスクリプト内で使用するgypなどのビルドツールを事前にインストールしておく必要があります。debuildはソースコード(ビルドスクリプト)の保存されたディレクトリで実行する必要があるので、まず以下のようにmozcディレクトリ内に作成される「src」ディレクトリに移動してから、コマンドを実行します。
$cd src
(svnコマンドでファイルをダウンロードした直後なので、相対パスで指定しています。絶対パスでは「$cd ~/src/mozc/src」 「$cd /tmp/src/mozc/src」のようになります)
$debuild -b -uc -us
一方、「-b」はバイナリパッケージのみを作成したいときに付けるオプションです。)
コマンドを実行すると、Makeファイルの作成、ソースコードのコンパイル、アーカイブの作成などが自動で実行されるので、完了するまで気長に待ちます。
パッケージの作成が成功すると、srcディレクトリの上位ディレクトリ(ここではmozc)にパッケージが作成されます。
3)パッケージをインストールする。
作成されたパッケージを以下のようにインストールします。(スペースの都合上複数列になっていますが、すべて一行分として入力しています)
#dpkg -i mozc-server_1.1.690.102_i386.deb ibus-mozc_1.1.690.102_i386.deb scim-mozc_1.1.690.102_i386.deb mozc-utils-gui_1.1.690.102_i386.deb
なお、ヘルプページでは、以上の4つパッケージのインストールが例示されていますが、実際には自分の使用したいインプットメソッド用のパッケージのみをインストールすればいいようです。
たとえば、scim上でmozcを使いたいときには「scim-mozc」、ibus上でmozcを使いたいときには「ibus-mozc」をインストールします。
以上でインストール作業は完了ですが、この時点では変更が反映されていないので、すぐに再起動します。
再起動後、自分の使っているインプットメソッド(プラットホーム)からMozcを起動できるように設定します。
私は最初にIBusをインストールしていたので、IBus上で動作させていますが、SCIMよりも設定が簡単なような気がします。
なお、IBusを使うには環境変数の変更が必要になることもあるようですが、最初にibusをインストールした場合は、変更する必要はないようです。
(もともと他のインプットメソッドを使っていた場合は以下を「~/.bashrc」に記述します。)
export GTK_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"
export QT_IM_MODULE="ibus"
【IbusでのMozcの使い方】
Bus上でMozcを動作させるときの設定は以下の手順で行います。
1.「システム→ 設定→ ibusの設定」で「IBusの設定」ウインドウを開く。
2.「インプットメソッド」タブをクリックしてウインドウを切り替える。
3.「インプットメソッドの選択→ 日本語→ Mozc」でMozcを選択し、 [追加]をクリックして下の「インプットメソッド」のリストにMozcを追加する。
インストールに成功していると、日本語入力メソッドにMozcが追加されています。
4.インプットメソッドの起動時にMozcが起動するように、下のリストから「日本語-Mozc」を選択して左の[上へ]をクリックしてリストの一番上に配置する。
以上でIbus上でMozcを使えるようになります。Scim上でも同様の設定を行えば、使えるようなるとは思いますが、最初からMozcを使うつもりならIbusを最初にインストールしたほうが簡単かもしれません。
これでようやく使えるようになったので、早速使ってみると、日本語入力が劇的に改善されて驚きました。
いままで誤変換が頻繁に起こるAnthyを使っていたので、もどかしい思いをすることが多かったのですが、「Mozc」を使うと日本語入力が劇的に楽になります。
Googleが蓄積したちょっとマニアックな日本語データは、オープンソース版では利用できないようですが、私はサブカルチャー関連の語彙はほとんど使わないので、全く問題はありませんでした。
また、Google日本語入力のWindows-XP版も使ったことがあるのですが、そのときにはWindowsIMEよりも動作が遅くて使いにくい印象があったのですが、Mozcには無駄なデータが入っていないせいか、Anthyと遜色ないくらいに軽快に動作します。
いままでLinuxは、日本語入力機能が弱点という印象がありましたが、このMozcをインストールすると、その弱点が完全になくなってしまうような気がしますね。
(Anthyでは1で@ という変換が出来なかったのですが、Mozcではできます。個人的にはこれがうれしかったですね。)
とはいえ、これらはKDE環境でibusをインストールしていれば、依存関係でインストールされると思うので、それほど気にする必要はないと思います。
参考サイト
バージョン管理ツールSubversionで使えるsvnコマンドのまとめ(Layer8)
http://jp.layer8.sh/reference/entry/show/id/659
Google日本語入力(IME)のオープンソース版「Mozc(モズク)」のSqueezeへのインストール(Hikichin コンピュータ関連サイト)
http://sites.google.com/site/hikichin2it/debian600-squeeze/googleime-squeeze


