[haskell]OSX Lionでcabal install mysql

メモ。
cabal install mysql(現最新は0.1.1.4)でエラーが出る。
ghc7.0.4。


じゃあと思って

$ cabal install mysql-simple
$ cabal install persistent-mysql

してみたけどmysqlに依存してるぽい。
仕方ない。

$ cabal install --extra-lib-dirs=/usr/local/mysql/lib/ --extra-include-dirs=/usr/local/mysql/include/ mysql
Resolving dependencies...
[1 of 1] Compiling Main             ( /var/folders/ym/jf63kw2n6453l1wq7s_186rr0000gn/T/mysql-0.1.1.423059/mysql-0.1.1.4/Setup.lhs, /var/folders/ym/jf63kw2n6453l1wq7s_186rr0000gn/T/mysql-0.1.1.423059/mysql-0.1.1.4/dist/setup/Main.o )
Linking /var/folders/ym/jf63kw2n6453l1wq7s_186rr0000gn/T/mysql-0.1.1.423059/mysql-0.1.1.4/dist/setup/setup ...
ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame
Configuring mysql-0.1.1.4...
Preprocessing library mysql-0.1.1.4...
dyld: Library not loaded: libmysqlclient.18.dylib
  Referenced from: /private/var/folders/ym/jf63kw2n6453l1wq7s_186rr0000gn/T/mysql-0.1.1.423059/mysql-0.1.1.4/dist/build/Database/MySQL/Base/C_hsc_make
  Reason: image not found
running dist/build/Database/MySQL/Base/C_hsc_make failed (exit code 5)
command was: dist/build/Database/MySQL/Base/C_hsc_make  >dist/build/Database/MySQL/Base/C.hs
cabal: Error: some packages failed to install:
mysql-0.1.1.4 failed during the building phase. The exception was:
ExitFailure 1


エラー内容に

dyld: Library not loaded: libmysqlclient.18.dylib

とあるので、 --extra-lib-dirs, --extra-include-dirs使えば良いかなーと思ったのだけどその結果が上。エラー内容変わらず。
libmysqlclient.18.dylibの場所は

$ mdfind libmysqlclient.18.dylib
/usr/local/mysql-5.5.14-osx10.6-x86_64/lib/libmysqlclient.18.dylib

で調べた。



OSXmysqlというとHDBC-mysqlの時に

こんな問題あったけどこれは7.0.2あたりで直っているはず。


ということで

ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame

これでグーグルさんに聞いてみると、

こんなバグが。milestone 7.6.1かー。
しようがないしよくわからないのでこれはスルーして

dyld: Library not loaded: libmysqlclient.18.dylib

このへんで検索。こんなのがヒット。

railsでの件だけど同じ問題が出ているらし。
install_name_toolsとかよくわからないものは取りあえず使わない方向で、次を実行。

$ export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

そしてcabal install mysql。通った!


cabal install --extra-lib-dirsあたりのオプションでは駄目なのだろうか...
この辺のオプションは

$ cabal install --help

でずらずら出てくる。