Leopard でサーバを自動的に見つける

Pippin

Leopard になって Finder のウィンドウに「共有」って項目ができた。ここに Debian サーバの名前がいつも出てきてて、ここをクリックすると samba 経由で共有ディレクトリをマウントできてた。command+k とかしなくて楽チンだね〜なんて思ってたのだけど、netatalk で接続する時にはどうなのよ?
というわけであちこち読んでなんとなく解ったのが、どうやらサーバが Bonjour してくれればいいらしい(かなりアバウトな解釈)。で、それは avahi-daemonってのがやってくれる。これ、実は Firefly を入れた時(だと思う)に既に入ってる(あ、だから iTunes が勝手にサーバを見つけてくれるのか!)。というわけで、avahi-daemonnetatalk の afp サービスをお知らせしてくれるように設定すれば良い。
この設定は… man 読んでみたけど挫折。/etc/avahi/services/ に *.service というファイル名でサービスの定義?ファイルを置けば良いみたいなんだけど、今の状態ではここに何のファイルも置いてない!サンプルとかテンプレートがあれば…。で、man avahi.service すると定義ファイルに必要な情報の書き方が載ってる。とにかく XML のファイルで があって、そこに が1つづつあれば良いみたいなんだけど。 は例えば "_http._tcp"って…それ何??? で、見つけたのが DNS-SD のページ。なるほど、ここが本拠地か! afp で検索して見つけたのがこれ。

afpovertcp      Apple File Sharing
                Leland Wallace <randall at apple.com>
                Defined TXT keys: u=<username> p=<password> path=<path>

afpovertcpってのが type ね。afp のポートは…548 ね。で、なんだかんだとテキストファイルを作って頑張ってみたけど駄目〜。疲れた。というわけで、さっくりとココにある設定をほぼそのまま使わせて貰った。自分のは xml ファイルだって言われてるのに最初の部分がなかったり、 なかったりと動かないのも当たり前だったな…。そんなわけで、service 用のファイルはこんな感じ。

paraches@debian:~/myTest/avahi-daemon$ cat afpd.service 
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
<name>Athlon-Server</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>
paraches@debian:~/myTest/avahi-daemon$ 

で、これを /etc/avahi/services/ にコピー。

paraches@debian:~/myTest/avahi-daemon$ sudo cp afpd.service /etc/avahi/services/
paraches@debian:~/myTest/avahi-daemon$ ls -al /etc/avahi/services/
合計 12
drwxr-xr-x 2 root root 4096 2008-01-12 14:02 .
drwxr-xr-x 4 root root 4096 2007-12-30 02:52 ..
-rw-r--r-- 1 root root  237 2008-01-12 14:02 afpd.service
paraches@debian:~/myTest/avahi-daemon$ 

後は avahi-daemon に設定を読み込んでもらう。

paraches@debian:~/myTest/avahi-daemon$ sudo /etc/init.d/avahi-daemon reload
Reloading services for Avahi mDNS/DNS-SD Daemon: avahi-daemon.
paraches@debian:~$ 

これで Finder の画面にシネマディスプレイのアイコンで netatalk サーバが出てきた!

samba の CRT ディスプレイよりこっちの方がカッコイイ!



ところで、この設定をあれこれいぢって無事に Finder に netatalk のサーバが表示されたと思ったら、なぜか iTunesFirefly を見つけてくれなくなってしまった。で、元に戻してみようと avahi-daemon の services に置いたファイルを消してみたけど駄目。なんだかどうにもならなくなってしまったので、どっちも消して最初からやり直したらどちらもちゃんと表示される様になった。というわけで、前に困ってる事があると書いたけど、無事に動く様になったので良かった良かった。