環境変数 DYLD_LIBRARY_PATH で Xcode の Subversion を差し替える
いろいろと訳((HTTP (HTTPS でなく) 上で SPNEGO 認証がしたい、svn help
で日本語が出て欲しい、とか。))有って、ちょっとカスタマイズした Subversion を使っている。なかなかいい感じに使えていて自画自賛の心境だったが、svn
コマンドだけ*1じゃダメだ。やはり、Xcode から使えないといけない。
「たしか Xcode って svn
コマンド蹴ってるだけだったからチョロいよなー。」と甘く見ていたら……、違う!! ちゃんと libsvn_* の API を使っていらっしゃる((「otool -L /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
」とかすると一目瞭然。))。
だが、その程度で慌ててはいけない。多少カスタマイズしただけだし、バイナリ互換なはずだ……、多分。「なら、LD_LIBRARY_PATH
でいけるだろう」と思ったが、よく考えてみたら OS X は ldd
じゃなくて dyld
だった。でも、世の中はよくできている。DYLD_LIBRARY_PATH
とかいう同じような環境変数がちゃんとあった((詳細は dyld(1)
にて。))。
最後の問題は、この環境変数をどうやって Xcode のプロセスに設定するか。Windows や Linux*2 みたいな設定箇所を探して「システム環境設定」をウロウロしたがどうにも見つからない。最悪、ターミナルから
$ DYLD_LIBRARY_PATH=/opt/subversion/lib open /Developer/Applications/Xcode.app
でもいいが……、本当に最悪だ。
紆余曲折の末、http://developer.apple.com/qa/qa2001/qa1067.html に到達。OS X のことが少し嫌いになる。「環境変数なんていう泥臭いものをエンドユーザに見せないのがスマート、ってのも分からなくはないが……」と内心ボヤきつつ仕方なしにコピペしようとするに……、これ画像かよっ!! Apple のことも少し嫌いになる。写経はゴメンなので、適当に find
してきた *.plist
をテンプレとしてコピー。plist
要素の version
属性が 1.0
になっていて、意味もなく得した気分に浸る。
勝利を確信して、ターミナルから env
を実行……したが、設定したはずの DYLD_LIBRARY_PATH
が見あたらない。一緒に設定した動作確認用の環境変数はちゃんと出てきていたので、「bash
がクリアしてるのか?」と ps -xE
してみる。案の定、launchd
*3 とその子プロセス達には DYLD_LIBRARY_PATH
がちゃんと設定されていて一安心。
満を持して Xcode から Subversion リポジトリにアクセスすれば、全てが思い通りに動いて非常に満ち足りた気持ちになる。
OS X が UNIX で本当に良かったよ*4。