試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Ubuntu向けパッケージ作成上のメモ(内海氏版AnthyのUbuntu向けパッケージに関するメモ)

Ubuntu向けにパッケージを作成した際のメモの内、「milkjfフォントとut(内海氏)版AnthyのUbuntu向けパッケージを作成(2010/11/20現在)」で公開した内海氏版Anthyのパッケージを作成した際のメモをここで扱う。

単語辞書ファイルの(再)構成処理について

Debian/UbuntuにおけるAnthyの単語辞書ファイルは「anthy」パッケージのインストール後にも再設定(GkDebconfdpkg-reconfigureコマンド)により構成が一部変更でき(base.t,extra.t,2ch.tの3つそれぞれを有効/無効にできる)、内部的には、辞書をインストール後に動的に作り直せるように/usr/share/anthy/dic/以下に辞書のソース(.tファイルや.ctdファイルなど)が配置されてパッケージ再設定の際にupdate-anthy-dicsというDebian/Ubuntu向けパッケージ独自な辞書更新ツール(シェルスクリプト)がこれらと再設定内容をもとに辞書を再構成するようになっている。
内海氏のバージョンでは辞書が追加されている上にエンコーディングも変換されており、Ubuntu標準のAnthyのパッケージをもとにして(内海氏版の)パッケージを作ろうとしたところ、パッケージのビルド段階で一度辞書は作成されるのだが、インストール直後の辞書ファイル再生成の段階で失敗してしまい、パッケージが使い物にならなかった。
この単語辞書の生成はmkworddicというAnthy内部ツール(ソースツリーにあるがインストールはされないツール)がソースツリーのmkworddic/dict.argsというスクリプトファイルを参照することで行われているようで、内海氏のバージョンではオリジナル版からは大幅に内容が変更されている。
一方でDebian/Ubuntuのパッケージのupdate-anthy-dicsによる再構成ではどうなっているかというと、このシェルスクリプトの中で/etc/anthy/dict.argsというmkworddic向けスクリプトを書き出した後でこれを実行しているようで、その内容はechoコマンドで書き出されていたため、内海氏によるmkworddic/dict.argsに相当する内容を書き出すように内容を修正することでこの問題は解決した。
ソースからのビルドの段階における辞書の生成処理については、update-anthy-dicsによる再構成が行われるために不要となっていることが分かったため、ビルドシステムの設定をいじってUbuntu向けパッケージのビルド時には生成しないようにした。

anthy.depの生成処理について

Ubuntu標準のAnthyのパッケージに付属する辞書更新ツールupdate-anthy-dicsの中では/var/lib/anthy/depgraph/anthy.depというファイルが生成されている。このファイルがないと名詞は変換できても動詞や形容詞などが変換できない。
オリジナルのパッケージでは/usr/share/anthy/depgraph/conjugate.tableというファイルを/var/lib/anthy/depgraph/以下にリンクし、これを用いてanthy.depmkdepgraphというAnthy内部ツールで生成しているのだが、G-HAL氏とそれに基づく内海氏によるバージョンではこのconjugate.tableは存在せず、代わりにソースツリーのdepgraph/ディレクトリ内の.tmpファイルが用いられるようで、同ディレクトリ内で

[anthy-9100h-[日付]ut/depgraph]$ ./mkdepgraph indepword.txt master.depword .

とするとanthy.depが得られるようになっている。内海氏版のAnthyanthy.depを正しく作成するためには、この部分の処理をupdate-anthy-dicsの中で行うようにする必要があった(そのために.tmpファイルは/usr/share/anthy/depgraph/以下に配置するようにしておく)。
これで手元の環境ではうまく変換ができるようになったように見える(まだ不具合が残っている可能性はある)。

関連記事: