Cygwinにavahi-daemonを導入する
Cygwin portsにはavahiが収録されている。avahiは、AppleのBonjourとして知られるZeroconfと同様のプロトコルを実装したもので、サービスのディスカバリ等でUbuntuやFedoraのようなGNOME系のディストリビューションには標準で導入されている。
で、WindowsにはApple製のBonjourがインストールできるのでどうやってAvahiを使うのかと思ったら、どうやらBonjourと同時に利用できるようなパッチがAvahiには存在し、Cygwin版はそれを取り込んでいるらしい。
というわけで、Cygwin portsにはAvahiが有るが、インストールしようとするとBonjourのインストールを促すダイアログがわざわざ出る。
Cygwin portsはOpenGL ESとかOpenVG(!)のような絶妙なパッケージもあるが、たまに上手く動かないものもあるので注意が必要だ。。追記: これらは既にCygwinの公式パッケージのようだ。Cygwin portsにしか無いものは主にGNOMEやKDEのようなデスクトップ環境とその周辺プログラム - 例えばGStreamer等 - で、実際それなりに動く。
Windowsサービスにする
CygwinのsshをWindowsのサービスとして動作させるためにssh-host-configコマンドを使ったように、Cygwin Avahiにもavahi-daemon-configコマンドが用意されている。
但し、先にD-Busを組み込まないとサービス開始時にエラーになる。D-Busは依存関係で自動的にインストールされるが、システム的な呼び名はmessagebusなのに注意。つまり:
- /usr/bin/messagebus-config
- /usr/sbin/avahi-daemon-config
の順に実行してシステムに組み込む必要がある。avahi-daemon-configによってイントールされるNTサービスには、ちゃんとmessagebusサービスとの依存関係が設定される。