cmigemoの再インストールではまった話

homebrewを使ってインストールしたcmigemoを再インストールした時にはまった話。

経緯

cmigemoはいっとき、homebrewからインストール出来ない状態が続いていました。ここ参照
たしか、Cellarというディレクトリにインストールされないで、/usr/local に直接インストールされるのはだめよって意味だと思います。 ここ参照
なので、brew doctor するとwarningが必ず出ていたんですが、下手にいじるとmigemo使えなくなりそうな気がして、放っておきました。
でも、最近 このコミット で対処されたようなので、warningを消そうと意気込んでみました。

やったこと

brew doctor すると、このようなWarningが出る。

-> brew doctor 
	Warning: Your Homebrew is outdated
You haven't updated for at least 24 hours, this is a long time in brewland!
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libmigemo.1.1.0.dylib

意味は

homebrewが意図しないファイルがあるから削除しないとビルドする時にトラブルの原因になるよ

ということ。ここにも対処法が出ている。

でも、これを放っておいて、cmigemoを再インストールしようとすると

-> brew install cmigemo
==> Downloading http://cmigemo.googlecode.com/files/cmigemo-default-src-20110227.zip
######################################################################## 100.0%
==> Patching
patching file src/wordbuf.c
==> chmod +x ./configure
==> ./configure --prefix=/usr/local/Cellar/cmigemo/20110227
==> make osx
==> make osx-dict
==> make utf-8
==> make osx-install
==> Caveats
See also https://gist.github.com/457761 to use cmigemo with Emacs.
You will have to save as migemo.el and put it in your load-path.
Warning: Could not link cmigemo. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link cmigemo'
==> Summary
/usr/local/Cellar/cmigemo/20110227: 21 files, 12M, built in 7 seconds

とエラーになる。

なので、無駄なcmigemoが残ってるんだろうということで

-> brew remove cmigemo   
Uninstalling /usr/local/Cellar/cmigemo/20110227...

として再度インストールしてもやっぱり同じようなエラーになる。

では、最初に戻って brew の言うとおりやってみる。
まずはインストール時のエラーメッセージの通り brew link cmigemo をやってみる。

brew link cmigemo
Linking /usr/local/Cellar/cmigemo/20110227... Warning: Could not link cmigemo. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/cmigemo/20110227/bin/cmigemo
Target /usr/local/bin/cmigemo already exists. You may need to delete it.
To force the link and delete this file, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

--overwirte オプションをつけろと。。。

-> brew link --overwrite cmigemo 
Linking /usr/local/Cellar/cmigemo/20110227... Warning: Could not link cmigemo. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/cmigemo/20110227/lib/libmigemo.dylib
/usr/local/lib/libmigemo.dylib may already exist.
/usr/local/lib may not be writable.

/usr/local/lib/libmigemo.dylib がすでにあるから link 出来ないよってことらしい。。。

では再度cmigemoを削除して brew doctor で言われた通りやってみる。

-> brew remove cmigemo 
Uninstalling /usr/local/Cellar/cmigemo/20110227..

-> ls /usr/local/lib/libmigemo.*
/usr/local/lib/libmigemo.1.dylib /usr/local/lib/libmigemo.dylib

-> rm /usr/local/lib/libmigemo.*

brew doctorでは /usr/local/lib/libmigemo.1.1.0.dylib だけが無駄っぽいことが書いてあったけど全部削除しちゃいました。

最後に

brew install cmigemo 
==> Downloading http://cmigemo.googlecode.com/files/cmigemo-default-src-20110227.zip
Already downloaded: /Library/Caches/Homebrew/cmigemo-20110227.zip
==> Patching
patching file src/wordbuf.c
==> chmod +x ./configure
==> ./configure --prefix=/usr/local/Cellar/cmigemo/20110227
==> make osx
==> make osx-dict
==> make utf-8
==> make osx-install
==> Caveats
See also https://gist.github.com/457761 to use cmigemo with Emacs.
You will have to save as migemo.el and put it in your load-path.
==> Summary
/usr/local/Cellar/cmigemo/20110227: 21 files, 12M, built in 5 seconds

となって無事インストールできました。

よかったよかった。。