macのライブラリ関係覚え書き
拡張子.bundleって?
ローダブルバンドル
ダイナミックリンクライブラリへのリンクと関連ファイルやデータをひとまとめにしたものらしい
.bundleがリンクしている.bylibをリストアップしたい
otoolコマンドを使う
$ otool -L /Users/kobayashi/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin10.8.0/iconv.bundle /Users/kobayashi/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin10.8.0/iconv.bundle: /Users/kobayashi/.rvm/rubies/ruby-1.8.7-p174/lib/libruby.dylib (compatibility version 1.8.0, current version 1.8.7) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
.bundleがリンクしている.bylibを変更する
標準のライブラリから、Homebrewでインストールしたライブラリを使いたい時とか
install_name_tool -change を使う
例 : .rvmにある、iconv.bundle がリンクしている標準の libiconv.2.dylibから、Homebrewのライブラリに変更
$ install_name_tool -change /Users/kobayashi/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin10.8.0/iconv.bundle \ /usr/lib/libiconv.2.dylib \ /usr/local/Cellar/libiconv/1.13/lib/libiconv.2.dylib