dbskkd-cdbでSKKの巨大辞書を使う

dbskkd-cdbは超高速で動くため、ギガヘルツ時代のマシンではSKK-JISYO.Lじゃもったいない。SKK辞書 - SKK辞書Wikiにあるほぼすべての辞書をとってきて、統合してしまいたい。まず、そこにある辞書をダウンロードしまくる。

俺は /r/skk (= ~/skk) にSKKの辞書を置いている。自分用の巨大辞書 SKK-JISYO.my.cdb を作成するためのRakefileを ~/skk/ に置く。辞書はすべて SKK-JISYO.* になっているのが前提だ。

LARGE_DICT = "/usr/share/skk/SKK-JISYO.L"
DICTS = FileList["SKK-JISYO.*"] - FileList["SKK-JISYO.my*"]
MY_DICT = "SKK-JISYO.my"

desc "Create my dictionary"
task :default do
  sh "skkdic-expr2 #{LARGE_DICT} + #{DICTS.join ' + '} > #{MY_DICT}" and
    sh "makeskkcdbdic #{MY_DICT} && ls -l #{MY_DICT}*"
end

そこで rake 一発で SKK-JISYO.my と SKK-JISYO.my.cdb ができあがる。

今度はdbskkd-cdbを使うためにインストールしたのだが、なんと、読み込む辞書が /usr/share/skk/SKK-JISYO.L にhardcodingされていることが判明した!
だからせっかく巨大辞書を作成しても、追加されたエントリを読んでくれない。

しょうがないからソースをとってきて、debian/rulesの /usr/share/skk/SKK-JISYO.L.cdb を /r/skk/SKK-JISYO.my.cdb に書き換える。

apt-get source dbskkd-cdb
sudo apt-get build-dep dbskkd-cdb
cd dbskkd-cdb-1.01
gnuclient ~/compile/dbskkd-cdb-1.01/debian/rules
dpkg-buildpackage -rfakeroot -us -uc
sudo dpkg -i ../dbskkd-cdb_1.01-20_i386.deb 

でしゅーりょー。