Mavericks で UnixBench 5.1.3

カテゴリ: Mac OS X

言わずと知れたUnixBenchはLinux環境ではそのまま動かせることが多い。
それがBSD系OSになるとちょっと難しい。
この記事ではMac OS X Mavericks で UnixBench 5.1.3 を動かす。

結論

$ wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
$ tar xzvf UnixBench5.1.3.tgz
$ git clone https://gist.github.com/11033924.git
$ cd UnixBench
$ patch -p1 < ../11033924/UnixBench5.1.3.mavericks.patch
$ make
$ ./Run

続きを読む »

2014/4/18 (金)

Mac OS X Mavericks の NTP

カテゴリ: Mac OS X

最近気づいたのだけど、Mac OS X Mavericks の標準 ntpd は使い物にならない。
起動した直後は正しい時刻に修正してくれるが、その後の同期を全然してくれない。
OS を起動しっぱなしにしていると、数秒〜1分程度はすぐずれてしまう。

この問題に言及した記事はたくさん見つかる。例えば、

などがそれである。

ntpd の再起動をかければ「直る」なんてのは話にならないし、
ntp.conf で minpoll と maxpoll を明示したところで
デフォルト値とは変わらないのだから実質的に意味が無いとしか思えない。
したがって、ntpd を自分でコンパイルしてインストールするのが最も確実である。

なお、本稿執筆時点で最新の安定版 4.2.6p5 は、Mavericks ではうまく動かないように見える。
私の環境 (Mavericks/Macbook Air) で試したところでは、
ntpq -p で localhost の ntpd につながらなかった。

一方、開発版 4.2.7p439 ではうまくいくように見える。
自分でダウンロードして手動で configure && make してもいいが、
先の記事にあるように Homebrew を使って
インストールするほうがよっぽど楽であるように思える。
私の書いたものも github にあげておいたので、

$ brew install barusan/app/ntp-dev

とすればするっとインストールできるはず。
これは自分も使うので、今後最新版が出るたびに Formula を書き換えるつもりでいる。

$ brew tap barusan/app

しておけば、update して最新版が見つかった時に upgrade できる。
三日坊主になっていても怒らないでください。

消すときは brew uninstall 一発で済みます。

Homebrew を使うにせよ、自力で configure && make するにせよ、
めでたく /usr/local 以下にインストールできる。それはよい。
しかし Mavericks は起動時に /usr/sbin/ntpd を絶対パスで起動してしまう。
/usr/sbin/ntpd を自分でコンパイルした最新版に置き換えるか、
OS 起動時に /usr/local/sbin/ntpd を起動させるかする必要がある。

Mavericks 起動時に ntpd を起動する設定は
/System/Library/LaunchDaemons/org.ntp.ntpd.plist
にある。これを見ると、
/usr/libexec/ntpd-wrapper
というラッパースクリプトを実行することで ntpd を起動させていることがわかる。
このスクリプトの最後に

exec /usr/sbin/ntpd -c /private/etc/ntp-restrict.conf -n -g -p /var/run/ntpd.pid -f /var/db/ntp.drift

なーんて記述があるので、
これを /usr/local/sbin/ntpd に書き換えてやればうまくいった。

2014/4/05 (土)