[Ruby] MacPortsとXCodeの共存
※再インストールのときにいろいろ試したら,どうやら,競合しない様子.
※ほかの不具合も怖いので,推奨しない!!ということにします.
※くわばら,くわばら.
XCodeをインストールすると,Rubyが自動的に/usr/bin/rubyにインストールされる.
すると,/opt以下に入るMacPorts経由のRubyと競合がおこってしまう.
これは非常にめんどくさい.
XCodeでデフォルトでインストールされるRubyもいいんだけど,RubyBDBとか,いろいろPortsでインストールしたいものもあるので,MacPortsのRubyを使うことにする.
今までなら,/usr/bin/rubyを/opt/local/bin/rubyのシンボリックリンクにかえて,XCodeの方は無視してもよかったのだが,LeopardからCocoaRubyがあるので,DeveloperToolsの方も考慮しないといけない.
そういうことで,DeveloperToolsのRubyを/opt/local以下のRubyシンボリックリンクでおきかえてみる.
XCodeでインストールされるRubyは,
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/share
に入っている.
これを全部リネームしてバックアップする.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin.DeveloperTools /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib.DeveloperTools /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/share.DeveloperTools
そして,MacPortsのbin,lib,shareのシンボリックリンクをここに張る.
cd /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin.DeveloperTools ln -s /opt/local/bin ./bin ln -s /opt/local/lib ./lib ln -s /opt/local/share ./share
これでほとんど終わりだが,DeveloperToolsのlibの中身をみると,
libruby.1.dylib libruby.dylib -> libruby.1.dylib
となっているので,それを/opt/local/libでも設定してあげる.
cd /opt/local/lib ln -s libruby.1.dylib libruby.dylib
これでおk.
RubyCocoaのサンプルもこれならちゃんと動きますし,MacPortsも使える.えがった.えがった.