Ubuntu 9.10にnetatalk 2.1.2インストール[追記・訂正あり]

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

PowerMac G4/MDDのUbuntu 9.10に、netatalk 2.1.2をインストールしました。まだ、Ubuntuが9.10なのは、アップグレードするのが面倒だからです。そのうち、アップグレードします。

netatalkの知識が無いときに、netatalkをapt-getでインストールしました。

$ sudo apt-get install netatalk

それによってインストールされたのは、2.0.4beta2と言うバージョン。古いです。

$ /usr/sbin/afpd -V
afpd 2.0.4beta2 - 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.1 support:    Yes
      Transport layers:    TCP/IP DDP
         CNID backends:    cdb dbd-txn last
           SLP support:    No
  TCP wrappers support:    Yes
         Quota support:    Yes
   Admin group support:    Yes
    Valid shell checks:    Yes
      cracklib support:    Yes
        Dropbox kludge:    No
  Force volume uid/gid:    No
             afpd.conf:    /etc/netatalk/afpd.conf
   AppleVolumes.system:    /etc/netatalk/AppleVolumes.system
  AppleVolumes.default:    /etc/netatalk/AppleVolumes.default
       UAM search path:    /usr/lib/netatalk/

色々勉強して、netatalkを最新の物にすることにしました。

まずは、既存のnetatalkの削除です。

$ sudo /etc/init.d/netatalk stop
$ sudo apt-get remove netatalk

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

netatalkのインストールに必要となるソフトが入っているか、調べてみました。

$ dpkg -l
ii  libslp1         1.2.1-7.5           OpenSLP libraries
ii  avahi-daemon    0.6.25-1ubuntu5.1   Avahi mDNS/DNS-SD daemon
ii  openssl         0.9.8g-16ubuntu3.1  Secure Socket Layer (SSL) binary and related
ii  libgcrypt11     1.4.4-2ubuntu2      LGPL Crypto library - runtime library
ii  db4.7-util      4.7.25-7ubuntu2     Berkeley v4.7 Database Utilities

必要な物は揃っていそうです。(実は、間違いでした。)

次の所から、netatalkのソースをダウンロードします。~/Downloads/に置きました。

ダウンロードしたファイルを展開し、configureします。

$ cd
$ mkdir netatalk
$ cd neteatalk
$ tar xvzf ~/Downloads/netatalk-2.1.2.tar.gz
$ cd netatalk-2.1.2
$ ./configure --enable-debian

うーん、configure失敗です。必要なソフトが入っていませんでした。やりなおします。

$ sudo apt-get install libdb4.6-dev
$ sudo apt-get install libssl-dev (uams_dhx.soを使う時に必要)
$ sudo apt-get install libgcrypt11-dev (uams_dhx2.soを使う時に必要)
$ sudo apt-get install libslp-dev

avahi-daemonは、やはりインストール済みの様です。Berkley DBに、4.6を使っているのは、このバージョンで動くかを確かめたかったからです。

$ ./configure --enable-debian ¥
> --enable-srvloc ¥
> --prefix=/usr ¥
> --sysconfdir=/etc ¥
> --with-uams-path=/usr/lib/netatalk/uams ¥
> --with-message-dir=/usr/lib/netatalk/msg

うまく行きました。

Using libraries:
    LIBS =  -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
        CFLAGS =
    BDB:
        LIBS   =  -ldb-4.6
        CFLAGS =
    SRVLOC:
        LIBS   =  -lslp
        CFLAGS =
Configure summary:
    Install style:
         debian
    AFP:
         AFP 3.x calls activated: yes
         Large file support (>2GB) for AFP3: yes
         Extended Attributes: ad | sys
         DDP enabled: yes
    CNID:
         backends:  dbd last tdb
    UAMS:
         DHX     ( SHADOW)
         DHX2    ( SHADOW)
         RANDNUM ( SHADOW)
         passwd  ( SHADOW)
         guest
    Options:
         CUPS support:           no
         SLP 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

–enable-srvlocをつけないと、SLP supportがyesになりませんでした。–prefix=/usr –sysconfdir=/etc –with-uams-path=/usr/lib/netatalk/uams –with-message-dir=/usr/lib/netatalk/msgは、apt-getでインストールされるnetatalkとなるべく合わせています。

いよいよ、コンパイル&インストールです。

$ make
$ sudo make install

バージョンを確認します。

$ /usr/sbin/afpd -V
afpd 2.1.2 - 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
      Transport layers:    TCP/IP DDP
         CNID backends:    dbd last tdb
           SLP 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
             afpd.conf:    /etc/netatalk/afpd.conf
    afp_signature.conf:    /etc/netatalk/afp_signature.conf
   AppleVolumes.system:    /etc/netatalk/AppleVolumes.system
  AppleVolumes.default:    /etc/netatalk/AppleVolumes.default
       UAM search path:    /usr/lib/netatalk/uams/
  Server messages path:    /usr/lib/netatalk/msg/

各種設定をします。

$ cd /etc/netatalk
$ sudo vi afpd.conf
$ sudo mv netatalk.conf /etc/default/netatalk
$ sudo vi /etc/default/netatalk
$ sudo vi AppleVolumes.default

/etc/netatalk/afpd.confには、次の内容を設定しました。

- -transall -uamlist uams_guest.so,uams_clrtxt.so,uams_dhx.so -maccodepage MAC_JAPANESE -unixcodepage UTF8 -slp

(追記 2010-07-02 00:16 SLPの為には、-slpが必要との事です。)

/etc/default/netatalkには、次の内容を設定しました。変更点のみ、列挙します。

AFPD_MAX_CLIENTS=50
ATALK_NAME=`/bin/hostname --short`
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8' AFPD_UAMLIST="-U uams_guest.so,uams_clrtxt.so,uams_dhx.so"

/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/u_capsule "Ubuntu Capsule" options:tm volsizelimit:5000

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

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

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

$ sudo mkdir /home/u_capsule
$ sudo chown nobody:nogroup /home/u_capsule
$ sudo chmod 775 /home/u_capsule

起動します。

$ sudo /etc/init.d/netatalk start

これで、アドレスを指定すれば、Macからマウントできる様になります。

書き疲れたので、avahi-daemonの設定は、また別の記事にします。avahi-daemonを設定しておくと、Macからの使い勝手が向上します。

(追記 2010-07-01 22:53)avahi-daemonの設定の記事を書きました。

(追記 2010-07-02 00:16)HATさんから、コメントで指摘がありました。ご指摘の通り、この記事のatalkd.confの設定は古いです。理由は、LANDISK HDL4-Gの設定をまねているからです。

(追記 2010-07-13 22:17)HATさんからコメントをいただきました通り、SLPの有効化には、/etc/netatalk/afpd.confに-slpオプションが必要でした。

avahiを切った状態で、SLPを有効化し、Tigerのマシンから見える事を確認しました。

Posted by お市のかた