FreeBSD2.2.8にnetatalk-1.6.3をインストール
とにかくハマりまくり。
まずドキュメントをよく読んでみると、FreeBSDの場合、 カーネルオプションにNETATALKを指定しなきゃ駄目とある。 で、カーネルの再構築。手順は省略。
カーネル書き終わったら、とりあえずnetatalkの解凍と./configureする。
configure: error: Berkeley DB library not found!
が出る。doc/INSTALLを読むと、doc/DEVELOPERを読めと言われ、読んでみると BerkeleyDBをインストールしろと書いてある。というわけでBerkeley DBを インストール。お勧めにしたがって、古い3.3.11を入れることにした。
http://www.sleepycat.com/update/snapshot/db-3.3.11.tar.gz
が、うまくインストールできないので、BerkeleyDB-4.0系をインストール。 こっちはインストールできたけど、
./configure --with-bdb=/usr/local/BerkeleyDB.4.0/lib
をやると、やっぱり同じメッセージが出る。
ln -s libdb-4.0.so.0.0 libdb.so ln -s libdb-4.0.a libdb.a
として試してみるが駄目。やっぱりBerkeleyDBのところでコケる。 まさかと思い、
./configure --with-bdb=/usr/local/BerkeleyDB.4.0
とやると通った。libは要らなかったのか。
次。makeすると、sendfileなんて知らねーというエラーがでる。 該当するdesktop.cを見てみると、
#ifdef SENDFILE_FLAVOR_BSD
てな感じで条件分けしてるところでsendfileが使われてる。sendfile(2)は FreeBSD4.0辺りからのサポートらしいので、config.hの
#define SENDFILE_FLAVOR_BSD 1
を、
/* #define SENDFILE_FLAVOR_BSD 1 */
に変えて再コンパイル。今度は通った。そして、
make install
でインストール完了。が、起動の方法がわからない……。
distrib/initscripts/rc.atalk.bsd
にそれらしきスクリプトがあったので、実行してみる。
1分くらい待つと起動。Macintoshの画面にマシン名が出る。やっとここまで来た。 Macintosh側で、マシン名をクリックしてOKを押すと、
「このファイルサーバは認識可能なログオンシーケンスを使用しません。」
と怒られてしまう。
system7だと、大きなボリュームはサポートしてないらしいので、MakefileのDEFSに、
-DNO_LARGE_VOL_SUPPORT
を入れてみるが駄目。エラーメッセージを見る限り認証系っぽい。
http://www.kitokitonet.ne.jp/~seiji/mac/linux-de-server-9.html
を見て、DHX対応でエラーが出てる気がしてきた。
MacintoshのOpenTransportを1.1.2に、AppleShare Clientを3.8.3に変更してみる。 これはAppleのWebサイトからダウンロードできた。インストールして、 とりあえず再び繋いで見る。
「このサーバの認証方法が見つかりません。システムフォルダ内の"AppleShare"フォ ルダを確認して再度やり直してください」
やはりエラーが出る。さっきよりエラーが分かりやすくなった。 次は、サーバー側がDHXで使うcryptoのチェック。
% ldd /usr/local/sbin/afpd /usr/local/sbin/afpd: -lcrypt.2 => /usr/lib/libcrypt.so.2.0 (0x2003c000) -lrpcsvc.2 => /usr/lib/librpcsvc.so.2.0 (0x2003f000) -lc.3 => /usr/lib/libc.so.3.1 (0x20044000)
やっぱりcryptoが入っていない。ということで、OpenSSLをインストール。
./config make
とするとasm関連でエラーが出たので、
./config no-asm make
でコンパイル。
make test make install
で無事インストール完了。再びnetatalkのコンパイルへ。
./configure --with-bdb=/usr/local/BerkeleyDB.4.0
前までなかったDHXの項目がconfig.hに出てる。ちょっと期待してmake & make install。
が、全然ダメ。ログを見てみると、uams_guest.soがないとかいうエラーが出てる。 /usr/local/etc/netatalk/uams/を見ると、libuams_guest.so.0.0はあるけど たしかにuams_guest.soはない。
ln -s libuams_guest.so.0.0 uams_guest.so
として、再びafpdを再起動すると・・・・
動いた!あーつかれた。。。