Debian Etchにnetatalk 2.2.0インストール(後編)

netatalk,パソコン・インターネット

IO-DATAのNASLANDISK Home HDL4-Gは、搭載されているnetatalkが古すぎて、OS X 10.7 Lionでは使えません。これを解決する為には、netatalkをバージョンアップする必要があります。もしHDL4-GのOSをupgradeしたなら、netatalk 2.2.0をインストールできるかどうかの調査です。

今回は、前編の続きです。前編の内容は、次の通りです。

  1. Debian 4.0 Etchインストール
  2. Debian 4.0 Etch設定(1)
    1. apt-getを使用できる様にする
    2. gccインストール
    3. Parallels Toolsインストール
    4. sshサーバ
  3. Debian 4.0 Etch設定(2)
    1. 拡張属性設定
    2. avahi-daemonインストール
  4. Debian 4.0 Etchのパッケージ調査
  5. BerkeleyDBインストール

後編ではnetatalk本体をインストールします。目次は、次の通りです。

  1. 関連ツールインストール
  2. Netatalk本体インストール
    1. パッケージダウンロード&展開
    2. configure
    3. make
    4. make install
  3. Netatalk設定
    1. /etc/default/netatalk
    2. /usr/local/etc/netatalk/afpd.conf
    3. /usr/local/etc/netatalk/AppleVolumes.default
  4. 起動
  5. 動作確認

なお、インストール、設定に関しては、次のページを参考にしています。ありがとうございます。

6. 関連ツールインストール

必要なツールをインストールします。パッケージが用意されている事は、前編で調査済みです。

# apt-get install libssl-dev (uams_dhx.soを使う時に必要)
# apt-get install libgcrypt11-dev (uams_dhx2.soを使う時に必要)
# apt-get install libslp-dev (SLPのために必要)
# apt-get install libavahi-client-dev (Zeroconfのために必要)

SLPはほとんど必要ないのですが、今までインストールしてきたので、成り行きでインストールします。Mac OS X 10.2よりも古いOS(Mac OS 9とか)を使っている方は、必要です。

LDAP/ACL関係のパッケージはインストールしません。LDAP運用をしないので。

Berkeley DBは、前編でインストール済みです。

7. Netatalk本体インストール

7.1 パッケージダウンロード&展開

パッケージのダウンロードは、Mac OS Xでしておきます。次のページからリンクをたどって下さい。

ダウンロードするパッケージは、gzipにしました。

ホームディレクトリの、ダウンロード(Downloads)にダウンロードされる物として説明を続けます。

この後、Terminal.appでの操作になります。Terminal.appからsshで、Parallels内のDebian Etchに接続しておきます。この方法は、前編で解説しています。

# cd
# mkdir work
# cd work
# mkdir netatalk
# cd netatalk
# cp -p /media/psf/Home/Downloads/netatalk-2.2.0.tar.gz .
# tar xvzf netatalk-2.2.0.tar.gz 
7.2 configure

configureします。インストールできるかどうかだけの実験なので、最低限のオプションにします。

# cd
# cd work/netatalk/netatalk-2.2.0
# ./configure --enable-debian \ (Debianなので)
# --enable-srvloc \ (SLPのために必要)
# --with-bdb=/usr/local/BerkeleyDB.5.2 (BDBの場所を教える)

SLP(–enable-srvloc)は、Mac OS X 10.2よりも古いOS(Mac OS 9とか)に、ファイルサーバを知らせる仕組みですので、通常は不要です。

configureの結果は、次の様になりました。

Using libraries:
    LIBS = -lpthread  -L$(top_srcdir)/libatalk
    CFLAGS = -I$(top_srcdir)/include -D_U_="__attribute__((unused))" -g -O2 -I$(top_srcdir)/sys
    SSL:
        LIBS   =  -lcrypto
        CFLAGS =  -I/usr/include/openssl
    LIBGCRYPT:
        LIBS   =  -lgcrypt -lgpg-error
        CFLAGS =   
    BDB:
        LIBS   =  -L/usr/local/BerkeleyDB.5.2/lib -ldb-5.2
        CFLAGS =  -I/usr/local/BerkeleyDB.5.2/include/
    SRVLOC:
        LIBS   =  -lslp
        CFLAGS =
Configure summary:
    Install style:
         debian
    AFP:
         AFP 3.x calls activated:
         Extended Attributes: ad | sys
    CNID:
         backends:  dbd last tdb
    UAMS:
         DHX     ( SHADOW)
         DHX2    ( SHADOW)
         RANDNUM ( SHADOW)
         passwd  ( SHADOW)
         guest
    Options:
         DDP (AppleTalk) support: no
         CUPS support:            no
         SLP support:             yes
         Zeroconf support:        yes
         tcp wrapper support:     no
         quota support:           yes
         admin group support:     yes
         valid shell check:       yes
         cracklib support:        no
         dropbox kludge:          no
         force volume uid/gid:    no
         Apple 2 boot support:    no
         ACL support:             no
7.3 make

コンパイルします。makeと入力するだけです。

# cd
# cd work/netatalk/netatalk-2.2.0
# make

コンパイルが終わった後に、./etc/afpd/afpd -Vで、バージョンと各種設定ファイルがインストールされる場所を確認しておきます。

# cd
# cd work/netatalk/netatalk-2.2.0
# ./etc/afpd/afpd -V
afpd 2.2.0 - Apple Filing Protocol (AFP) daemon of Netatalk
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
afpd has been compiled with support for these features:
        AFP3.x support:    Yes
        TCP/IP Support:    Yes
DDP(AppleTalk) Support:    No
         CNID backends:    dbd last tdb
           SLP support:    Yes
      Zeroconf support:    Yes
  TCP wrappers support:    No
         Quota support:    Yes
   Admin group support:    Yes
    Valid shell checks:    Yes
      cracklib support:    No
        Dropbox kludge:    No
  Force volume uid/gid:    No
           ACL support:    No
            EA support:    ad | sys
          LDAP support:    No
             afpd.conf:    /usr/local/etc/netatalk/afpd.conf
   AppleVolumes.system:    /usr/local/etc/netatalk/AppleVolumes.system
  AppleVolumes.default:    /usr/local/etc/netatalk/AppleVolumes.default
    afp_signature.conf:    /usr/local/etc/netatalk/afp_signature.conf
      afp_voluuid.conf:    /usr/local/etc/netatalk/afp_voluuid.conf
         afp_ldap.conf:    not supported
       UAM search path:    /usr/local/etc/netatalk/uams/
  Server messages path:    /usr/local/etc/netatalk/msg/
              lockfile:    /var/lock/afpd

正しくコンパイルされた様です。

ファイルの置き場所も大丈夫そうです。

7.4 make install

いよいよインストールです。

# cd
# cd work/netatalk/netatalk-2.2.0
# make install

念のため、インストールされたバージョンを確認します。

# /usr/local/sbin/afpd -V
afpd 2.2.0 - Apple Filing Protocol (AFP) daemon of Netatalk
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
afpd has been compiled with support for these features:
        AFP3.x support:    Yes
        TCP/IP Support:    Yes
DDP(AppleTalk) Support:    No
         CNID backends:    dbd last tdb
           SLP support:    Yes
      Zeroconf support:    Yes
  TCP wrappers support:    No
         Quota support:    Yes
   Admin group support:    Yes
    Valid shell checks:    Yes
      cracklib support:    No
        Dropbox kludge:    No
  Force volume uid/gid:    No
           ACL support:    No
            EA support:    ad | sys
          LDAP support:    No
             afpd.conf:    /usr/local/etc/netatalk/afpd.conf
   AppleVolumes.system:    /usr/local/etc/netatalk/AppleVolumes.system
  AppleVolumes.default:    /usr/local/etc/netatalk/AppleVolumes.default
    afp_signature.conf:    /usr/local/etc/netatalk/afp_signature.conf
      afp_voluuid.conf:    /usr/local/etc/netatalk/afp_voluuid.conf
         afp_ldap.conf:    not supported
       UAM search path:    /usr/local/etc/netatalk/uams/
  Server messages path:    /usr/local/etc/netatalk/msg/
              lockfile:    /var/lock/afpd

大丈夫の様です。

8. Netatalk設定

8.1 /etc/default/netatalk

次の内容を設定しました。変更点のみ、列挙します。

ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'
AFPD_UAMLIST="-U uams_guest.so,uams_dhx.so,uams_dhx2.so"
8.2 /usr/local/etc/netatalk/afpd.conf

次の内容を設定しました。

- -tcp -noddp -uamlist uams_guest.so,.so,uams_dhx.so,uams_dhx2.so \
-maccodepage MAC_JAPANESE -unixcodepage UTF8 \
-slp (SLPを使う場合に指定)

SLP(-slp)は、Mac OS X 10.2よりも古いOS(Mac OS 9とか)に、ファイルサーバを知らせる仕組みですので、通常は不要です。

8.3 /usr/local/etc/netatalk/AppleVolumes.default

次の内容を設定しました。

:DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 dperm:0700 fperm:0600 ea:sys
/home/username "username" allow:@username deny:admin
/home/d_capsule "Debian Capsule" options:tm volsizelimit:5000

元々設定されていた"~"は、コメントアウトします。

/home/usernameは、ログインディレクトリです。

/home/d_capsuleは、Time Machineのバックアップ用です。volsizelimit:5000は、5GiBと言う事です。実態に合わせて変更してください。

# mkdir /home/d_capsule
# chown nobody:nogroup /home/d_capsule
# chmod 775 /home/d_capsule

9. 起動

サービスを起動します。前編でavahi-daemonをインストール済みです。

# /etc/init.d/netatalk start
# /etc/init.d/avahi-daemon start

10. 動作確認

Mac OS X側での動作確認です。OS Xは、Lion(10.7)です。

次の項目を確認します。

  • Finderから、サーバが見えるか? … OK
  • フォルダを作れるか? … OK
  • ファイルをコピーできるか? (Mac→Debian、Debian→Mac) … OK
  • ファイルのパーミッションとタイムスタンプはどうか? … OK
  • 拡張属性はついているか? … OK
  • ファイル名の確認(日本語、禁止文字、長いファイル名) … OK
  • TimeMachineのディスクに表示されるか? … OK

全項目、OKでした。

あ、guestアクセスができないのです。なんでだろう…。

# asip-status.pl 10.211.55.4
AFP reply from 10.211.55.4:548
Flags: 1  Cmd: 3  ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk 2.2.0
AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3
UAMs: DHX2,DHCAST128,No User Authent
Volume Icon & Mask: exist
Flags: SupportsCopyFile,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsUUIDs,SupportsSuperClient
Server name: etch
Signature:
42 80 54 4f 27 af 11 ff a0 e3 7a dd f7 7f 7c 76  B.TO'.....z...|v
                                                 
Network address: 10.211.55.4 (TCP/IP address)
UTF8 Servername: etch

guestが有効になっている様に思えるのですが、なぜかエラーになってしまいます。

【関連記事】

Posted by お市のかた