MacOS X Lionにアップグレード

MacMini2009をリポジトリ、redmineサーバにしていたのですが、ファイルサーバもUSB外付けミラーリングHDDに任せ、DLNAサーバやAirVideoサーバなど色々纏めることにしました。
サーバで使っていた時は特に問題なかったのですが、多くのMacアプリがAppStoreからのダウンロードになっていたり、それに合わせて10.6以上のMaxOSが必要だったのでアップグレードCDをAppleStoreで注文し、10.6.3に。
これで十分かと思っていたのですが、10.7(lion)からはレスキューディスクが作れる、に目が止まりました。
これまでもTimeMachineでバックアップは取っていたのですが、システムHDDが完全にお亡くなりになった場合には一体どうなるんだ?という疑問が浮かびます。
恐らく何らかの方法でHDDを換装してMacOSをインストール、そこからTimeMachineのバックアップで復旧ということになるんでしょうか。
面倒です・・・。10.7へのアップグレードはAppStore経由のダウンロードでサクっと購入可能。この後にLion 復元ディスクアシスタントから該当アプリをダウンロードしてUSBメモリをレスキューディスクにしました。これでUSBメモリから起動させ直接TimeMachineから復旧とかが出来る予定です。

そして今までMacPortsで行なっていたパッケージ管理を流行りのHomebrewに移行させました。
実験で入っていた大量のパッケージを単に大掃除したかっただけではありますが、なんか評判が良さそうだったので。

MacPortsからHomebrewへの移行メモ

こちらを参考に、MySQLは予めダンプを取ってバックアップ、Apache、PHPなどもiniファイルを退避。
後はどうにでもなりそうだったのですが、一応TimeMachineで直前をバックアップし、portコマンドからuninstallを掛け、後はザックリと/opt/local/を消します。

10.7からはruby1.8.7が同梱されているので、そこからHomebrewをインストール。
後はApache、MySQL、PHPをインストールすれば終わり。の予定でしたが、肝心のredmineに必要なmod_passengerのコンパイルがエラーで通りません。
長いの端折りますが、rubyを1.9系にしたり、Xcodeのバージョンを上げたり、下げたり、2日近く弄りましたが解決せず。
もうpassenger単独起動で良いんじゃないか・・・と諦めていたのですが、passenger-install-nginx-moduleってあるぞ?と。
passenger-install-nginx-moduleを起動するとnginxまでご丁寧にコンパイルして入れてくれるので、そのままお任せしてみるとアッサリ入りました。
PHPはphp-fpm経由で起動させ、Rubyはpassennger経由の起動となります。

あー長かった。

brewではパッケージのバージョン毎にディレクトリが作られインストールされ、/usr/local/binにはシンボリックリンクを作成してくれます。
バージョンの切り替えが簡単で良いですね。

それにしてもruby周りの設定は毎回ハマります。
最近はbundlerというgemライブラリ周りの依存関連をコマンド一発でどうにかしてくれるツールが出て、だいぶ楽になりました。
redmineのバージョンアップ毎にこれが繰り返されるため、rubyのコードは1行も書いたことがないのに設定の知識だけが上がっていく今日この頃です。