Mac OS X 10.4(Tiger)にはDNSサーバとしてbind 9.2.2がバンドルされているが「今どきbind 9.2.2かよ!?」と思わないでもない。インターネットに晒す以上せめて最新リリース版(bind 9.2.6)にしておきたい。そこでMac OS Xの流儀に則った(?)bindの自力インストールに挑戦してみた。ポイントとしてはMac OS X Serverの「サーバ管理」でもDNS操作ができるように既存のDNS(bind)環境を奇麗(?)に上書きインストールすることだ。そこでコンパイルオプションを調査。ググッた結果,
CFLAGS="-arch ppc -arch i386 -g -Os -pipe -pipe -no-cpp-precomp -arch ppc -arch i386" CCFLAGS="-arch ppc -arch i386 -g -Os -pipe " CXXFLAGS="-arch ppc -arch i386 -g -Os -pipe " LDFLAGS="-arch ppc -arch i386" sysconfdir="/private/etc" includedir="/usr/local/include" libdir="/usr/local/lib" localstatedir="/private/var" TEXI2HTML="/usr/bin/texi2html -subdir ." ./configure --prefix="/usr" --mandir="/usr/share/man" --infodir="/usr/share/info" --sysconfdir="/private/etc" --localstatedir="/private/var"ではないかと邪推。いざconfigureと思ったところWWDCの頃にXcode 2.4が出ていたことに気付いた。まずは938MBのXcodeをダウンロードすることにした。続きはそれから...
Xcode 2.4のインストールを終え作業再開。上記configureは瞬時に撃沈することがわかった。そこで
bind-9.2.6% env CFLAGS="-arch ppc -arch i386 -Oz -pipe -isysroot /Developer/SDKs/MacOSX10.4u.sdk" CCFLAGS="$CFLAGS" CXXFLAGS="$CLAGS" sysconfdir="/private/etc" localstatedir="/private/var" ./configure --prefix="/usr" --mandir="/usr/share/man" --infodir="/usr/share/info" --sysconfdir="/private/etc" --localstatedir="/private/var"としてみた。まだ冗長な部分がありダイエットできそうな雰囲気はあるが,上記操作で無事configureも通りmake一発。sudo make installもOK。
% file /usr/sbin/named /usr/sbin/named: Mach-O fat file with 2 architectures /usr/sbin/named (for architecture ppc): Mach-O executable ppc /usr/sbin/named (for architecture i386): Mach-O executable i386結果,我が家のnamedはユニバーサルバイナリとなった。悦。肝心の「サーバ管理」のGUIからDNSをSTOP+STARTしてみたところ問題なし。ログも/Library/Logs/named.logに吐いている。どうやら奇麗に上書きできた模様。
bind 9.2.6
CUIでも確認してみる。
% dig +sh @127.0.0.1 chaos txt version.bind. "9.2.6"イイじゃない?たぶんバッチグー。
最近のコメント