migemo のインストールにてこずった

新しい Mac mini を買ったので環境設定中。

ruby 1.8.7 をインストール。*1
そして migemo をインストールしたが動かない。

何を検索してもマッチしない。

[MIGEMO] Failing I-search: 

もちろん make check はパスしている。

$ make check
Making check in tests
make  check-TESTS
PASS: ruby-syntax.sh
PASS: migemo.sh
PASS: convert.sh
PASS: cache.sh
PASS: regex.sh
PASS: emacs-type.sh
PASS: insertion.sh
PASS: regex-dict.sh
PASS: user-dict.sh
PASS: symbols.sh
===================
All 10 tests passed
===================

scratch バッファであれこれ評価してみたら、rubymigemo.rb をロードできていないみたい。

(migemo-get-pattern "foo")
"/usr/local/bin/migemo:15:in `require': no such file to load -- migemo (LoadError)
	from /usr/local/bin/migemo:15"

なんで?
migemo はちゃんとインストールできてるのに。

irb でも、ちゃんと require できる。

require 'migemo'  # => true

2 時間くらい悩んで原因が分かった。

(add-to-list 'exec-path "/usr/local/bin")

.emacs を整理して、覚えたての add-to-list を使ったせいで exec-path の順序が変わってしまった。
exec-path の後ろの方に /usr/local/bin が入っているらしく、cons されていない。

(setq exec-path (cons "/usr/local/bin" exec-path))

無条件に cons して、migemo をインストールした ruby が呼び出されるようにした。

*1:Mac OS X 標準の Ruby は 1.8.6