C/Migemo のインストール

自宅の PC の Ruby も RVM で管理することに伴い、Ruby のバージョン毎に
migemo をインストールするのは面倒なので、C/Migemo をインストールする。

ソースの取得、展開、コンパイル、インストール

$ cd ~/src/
$ wget http://cmigemo.googlecode.com/files/cmigemo-default-src-20110227.zip
$ unzip cmigemo-default-src-20110227.zip
$ cd cmigemo-default-src

README.txt(README_j.txt) が丁寧。

$ ./configure --help
bash: ./configure: Permission denied
$ ls -l configure 
-rw-r--r-- 1 foo boo 1770 Feb 27 19:45 configure

何故か configure に実行権限がついていない。

$ chmod 755 configure 
$ ./configure --help

--help で ヘルプが表示されない上に config.mk が 更新される。
しょうがないので configure を見ると --prefix は 指定出来る。

$ ./configure --prefix=$VMDIR_PATH/usr
$ make gcc
 - 略 -
cc -O2 -Wall  -fPIC -o build/object/wordbuf.o -c src/wordbuf.c
src/wordbuf.c: In function `wordbuf_cat':
src/wordbuf.c:118: error: `INT_MAX' undeclared (first use in this function)
src/wordbuf.c:118: error: (Each undeclared identifier is reported only once
src/wordbuf.c:118: error: for each function it appears in.)
 - 略 -

エラー。http://d.hatena.ne.jp/ser1zw/20100825/1282663086
読むと、src/wordbuf.c に

#include <limits.h>

を追加するようだ。修正して

$ make gcc

コンパイルが完了した。なんで エラーのソースをアップロードしてるんだろう?

$ make gcc-dict

dict/euc-jp.d/ しか作られないので

$ cd dict
$ make utf-8
$ cd ..
$ make gcc-install

/etc/ld.so.conf の編集とロード

/etc/ld.so.conf の編集だが、Vine 4.2 には /etc/ld.so.conf.d/
ディレクトリがあり、ここに置かれたファイルが読み込まれる。

root で /etc/ld.so.conf.d/User-Library.conf を作成し、

/path/to/lib

と編集し、

# ldconfig

で共有ライブラリとして libmigemo.so, libmigemo.so.1 が認識される。

.emacs の設定

(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary (concat (expand-file-name myvm-dir) "/usr/share/migemo/utf-8/migemo-dict"))
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
(load-library "migemo")

以上を評価し、migemo で I-search が出来るようになった。

Migemo(本家 Ruby版) の削除

Migemo と C/Migemo が混在してると 後々 混乱しそうなので削除する。

本家のインストール手順は

を取得、展開し、Ruby のロードパスが通っているディレクトリに
romkan.rb, bsearch.rb をコピーする。

を取得、展開し、make, make install。

以上の 逆を行う。

$ cd ~/src/migemo-0.40

emacs-lisp は残さなければならないので、Makefile より、

uninstall-binSCRIPTS:
uninstall-pkgdataDATA:
uninstall-rubyDATA:

を それぞれ実行すればよい。

$ make uninstall-binSCRIPTS
$ make uninstall-rubyDATA
$ make uninstall-pkgdataDATA

romkan.rb, bsearch.rb を消去。

$ cd $VMDIR_PATH/usr/lib/ruby/site_ruby/1.8/
$ rm romkan.rb bsearch.rb 

終了