Snow Leopard + ruby + macports エラー
ここ最近、まつもとゆきひろコードの世界 を読んでる。
それに載ってるサンプルを実践しようと tk 付き ruby のインストールを試みたらつまずいたのでメモ。
インストール
普通に MacPorts を使ってインストールを試みたところ、
$ sudo port install ruby +thread_hooks +mactk
...
/usr/bin/gcc-4.2 -dynamic -bundle -undefined suppress -flat_namespace -o ../../.ext/i686-darwin10/tcltklib.bundle stubs.o tcltklib.o -L. -L../.. -L. -L/opt/local/lib -framework Tk -framework Tcl -arch x86_64 -lruby -lm -ldl -lpthread -ldl -lobjc
ld: in /opt/local/lib/libsqlite3.dylib, file is not of required architecture
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i686-darwin10/tcltklib.bundle] Error 1
make: *** [all] Error 1
失敗。
-arch x86_64 や file is not of required architecture があやしい。
アーキテクチャがどうのこうの。
調べたら標準の OS 10.6 は dynamic libraries が 64bit で動作しているんだとか。
Snow Leopard にアップデートしたことが原因っぽい。
いったん・・・
MacPorts でインストールしたライブラリなどを
全部アンインストール&リビルドすればいけるようだったので、
$ port installed
$ sudo port -f uninstall installed
...
$ port installed
No ports are installed.
何をインストールしてたか確認してから、キレイに全部アンインストール。
もう一度インストール
もう一度 ruby を最初からインストール。
$ sudo port install ruby +thread_hooks +mactk
...
---> Installing ruby @1.8.7-p174_0+darwin+mactk+thread_hooks
---> Activating ruby @1.8.7-p174_0+darwin+mactk+thread_hooks
---> Cleaning ruby
無事成功した。
Leopard からの互換性を保ちつつ進化したように感じた Snow Leopard だったけど、
意外と対応してないアプリだとかしばらく弊害あるのかね。