この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
Mac OS X LionでWiresharkを動かすと起動しない自体が頻発しますが、変な方法で動くようになったので報告します。
Mac OS X Lionがリリースされてはや数ヶ月立ちますが、様々なソフトが死んだりして正しい生存戦略ができない自体になりかねない状況です。
エンジニアにとって必須ソフト、Wiresharkも同じように荒ぶるLionによって惨殺される自体になっていますが、よくわからないけど動くようにできたので報告します。
Wiresharkでは一般権限で動かすときに、 /dev/bpf* の所有者を変更してあげる必要があります。ただし、現在のMacPortsのバージョンでは一般権限でなぜかセグってしまい死んでしまう状態になっています。
bash-3.2$ wireshark
Segmentation fault: 11
そこでroot権限で動かすのですが、なぜかWiresharkがそのまま終了するという状態になったりします。
bash-3.2$ sudo wireshark
(そのまま死亡)
そこで、一旦所有者を変更してみました。
bash-3.2$ ls -lh /dev/bpf*
crw------- 1 tmatsuzawa admin 23, 0 Oct 25 10:10 /dev/bpf0
crw------- 1 tmatsuzawa admin 23, 1 Oct 25 10:10 /dev/bpf1
crw------- 1 tmatsuzawa admin 23, 2 Oct 25 10:10 /dev/bpf2
crw------- 1 tmatsuzawa admin 23, 3 Oct 25 10:10 /dev/bpf3
bash-3.2$ sudo chown tmatsuzawa:admin /dev/bpf*
bash-3.2$ sudo wireshark
すると今度は起動するようになりました。
で、一旦終了してから再度起動をします。すると今度は死にます。
bash-3.2$ sudo wireshark
(そのまま死亡)
おかしいと思って、元の所有者に戻してみました。
bash-3.2$ ls -lh /dev/bpf*
crw------- 1 tmatsuzawa admin 23, 0 Oct 25 10:10 /dev/bpf0
crw------- 1 tmatsuzawa admin 23, 1 Oct 25 10:10 /dev/bpf1
crw------- 1 tmatsuzawa admin 23, 2 Oct 25 10:10 /dev/bpf2
crw------- 1 tmatsuzawa admin 23, 3 Oct 25 10:10 /dev/bpf3
bash-3.2$ sudo chown root:wheel /dev/bpf*
bash-3.2$ sudo wireshark
今度は正常に動きます。そして、再度起動すると動かないという状態になります。
まとめると、Wiresharkを起動する場合は、一度 /dev/bpf* の所有者を変更すると動くようです。
たぶん、短期的なバグだと思われますが、とりあえず生存戦略を遂行するためにはこのような対策をしていただく必要があるみたいです。
本家への報告は時間があれば…