Netatalk 2.xから3.xへ移行する人のための情報

2016.07.17


configureオプションが違う

例えば、Debianユーザの場合は--enable-debianを指定してましたが、今度は--with-init-style=オプションを使います。

configure時にPAMが有効になっている場合、--with-pam-confdir=を適切に設定していないと、クライアントからログインできない可能性が大です。

configure時にD-Busが有効になっている場合、--with-dbus-sysconf-dir=を適切に設定していないと、afpstatsコマンドが動作しません。

ファイルの置き場所が違う

afpd -Vで確認してください。

設定ファイルがシンプルに

2.xは設定ファイルが沢山ありましたが、ほぼ全て廃止になりました。新ファイルafp.confでほぼ全て設定できます。このファイルはSambaのsmb.confをマネしています。manpageまで酷似しています。
拡張子とType/Creatorの対応はextmap.confを使いますが、普通は設定不要でしょう。
新旧パラメータの対応関係は、以下のページの下の方の表をみてください。
Chapter 4. Upgrading from Netatalk 2

デフォルト値が一部変更

旧設定options:upriv設定してなかった場合、新設定unix priv = noを使ってください。新しいデフォルト値はyesです。

ファイル名の扱いが一部変更

旧設定options:usedots設定してなかった場合、先頭のドットが「:2e」に変換されてましたが、この機能はなくなりました。Netatalk 3を起動すると随時ドットに変換されます。
Finderで「/」、Terminal.appで「:」に見えていた文字は「:2f」に変換されていましたが、Netatalk 3では「:」で保存されます。Netatalk 3を起動すると随時変換されます。
つまり、HEX (CAP)エンコーディングは使いません。勝手に変換されるので気にする必要もないでしょう。

起動手順がシンプルに

Netatalk 2では起動スクリプトが各デーモンを個別に起動していましたが、この方法は廃止です。
Netatalk 3では新たにnetatalk (8)という名前のデーモンが導入されたので、init systemはnetatalkデーモンを起動するだけです。
netatalkデーモンさえ起動しておけば、あとは必要に応じてafpdcnid_metadcnid_dbdが勝手に起動/停止します。
Spotlight機能を有効にしている場合は、Tracker関連のデーモンも自動的に起動します。

邪魔な隠しディレクトリは一掃

Netatalk 2では、様々なメタデータをAppleDoubleフォーマットにして.AppleDouble/ディレクトリに入れていました。
Netatalk 3では、これを[user.]org.netatalk.Metadataという名前の拡張属性にAppleDoubleフォーマットのまま突っ込みます。
旧式のメタデータを発見すると随時拡張属性に変換します(convert appledouble = yes)。dbdコマンドを使えば一気に全部変換できます。
ただし、リソースフォークだけはサイズが大きすぎて拡張属性に入りきらないので、「._」で始まるファイル名で保存します。最近はリソースフォークが付いているファイルは少ないので、滅多にこのファイルは作られないでしょう。

なお、Solaris系OSでZFSを使っている場合、巨大な拡張属性を扱うことができるので、リソースフォークも含めてすべてのメタデータが拡張属性に入ります。FreeBSDやLinuxでZFSを使っても巨大な拡張属性は扱えないので注意してください。

CNIDを管理する.AppleDBディレクトリはvar/netatalk/CNID/(ボリューム名)/.AppleDBに自動的に移動されます。

.AppleDesktopディレクトリはvar/netatalk/CNID/(ボリューム名)/.AppleDesktopに自動的に移動されます。

つまり、Netatalk 2が作っていた隠しディレクトリは全部なくなります。ただし、拡張属性が使えないファイルシステムを使っている場合は、全てのファイルに対して「._」で始まるファイルが生成されます。

Mac側が作る隠しファイルはどうしようもないです。

廃止された機能

AppleTalk廃止なので、接続できるのはAFP over TCP対応である漢字Talk 7.5.5(要Open Transport J-1.1.2)以降。
SLP対応は廃止なので、サーバを発見できるのはBonjour対応であるMac OS X 10.2以降。
マルチサーバ機能廃止なので、1つのサーバしか定義できない。
サーバ側の文字コードがUnicodeでない場合、つまりEUC-JP等の場合、いわゆる機種依存文字が使えません。たとえば「まるいち」①とかです。CAP (HEX)エンコーディングが廃止になったからです。いまどきのサーバはUTF-8だから気にしなくていいです。

安心してよいところ

要求するライブラリのバージョンは上がってません。BDBは4.6以降のまんまです。Netatalk 2.2.xをビルドできた環境なら、たぶんNetatalk 3.xもオッケーです。
設定ファイルafp.confを新たに書かなければいけませんが、簡単です。クソ難しいNetatalk 2の設定ができた人ならば問題ないでしょう。


履歴


↑ Upper Page