[Edit][Create New]
[ IndexPage / インストール / netatalk ]

netatalk

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を再起動すると・・・・

動いた!あーつかれた。。。