/Library/Frameworks -> /opt/local/Library/Frameworks
python24 のライブラリの場所が /Library/Frameworks から /opt/local/Library/Frameworks (${prefix}/Library/Frameworks) に変更された。で、とりあえず自分がメンテナになっているものでこの流れを受けそうなのが rubycocoa (ruby/rb-cocoa) だ。これも RubyCocoa.framework の場所が /Library/Frameworks になっている。
とりあえず ${prefix}/Library/Frameworks にライブラリをインストールするようにしてみたが、どうもエラーが出る。
irb(main):001:0> require 'osx/cocoa' dyld: NSLinkModule() error dyld: Library not loaded: @executable_path/../Frameworks/RubyCocoa.framework/Versions/A/RubyCocoa Referenced from: /opt/local/lib/ruby/vendor_ruby/1.8/powerpc-darwin8.2.0/rubycocoa.bundle Reason: image not found Trace/BPT trap
rubycocoa.bundle が新しい場所の RubyCocoa.framework にリンクできないようだ。ちょっと調べてみたところ、install_name_tool を使えば修正できるようなので、
$ cd /opt/local/lib/ruby/vendor_ruby/1.8/powerpc-darwin8.2.0/ $ sudo install_name_tool -change @exerameworks/RubyCocoa.framework/Versions/A/RubyCocoa /opt/local/Library/Frameworks/RubyCocoa.framework/Versions/A/RubyCocoa rubycocoa.bundle
としてみたら直ったようだ。しかし、すでにコンパイルされたサンプルなどを実行しようとするとやはり同様のエラーが発生する。サンプル内のバイナリに対して同様の修正を行えばよいのだが、毎回毎回そんなことしていられないだろう。別の解として、素直に
$ sudo ln -s /opt/local/Library/Frameworks/RubyCocoa.framework /Library/Frameworks
という手もあるが、それならわざわざ /opt/local に入れる必要もない気がするし。どうしたものか。もしくは環境変数
DYLD_LIBRARY_PATH="/opt/local/Library/Frameworks/RubyCocoa.framework"
とか。あり得ない。
DarwinPorts としての整合性と Mac OS X 本来の仕様とのギャップが悩ましい。
今日は LLDN だったんだよね。どうだったんだろう。参加者の事後報告を読みのが楽しみだ。