Ubuntu 10.04にnetatalk 2.2beta2インストール

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

netatalk 2.2beta2がリリースされたと、HATさんからコメントをいただきましたので、インストールしてみました。一応、ACL対応でコンパイルしたのですが、不完全です。

インストールは、次の記事を参考にしています。HATさん、ありがとうございます。

大まかな、インストール手順は、次の通りです。他のパッケージを、ソースからビルドするのと、同じ手順です。

  1. 関連ツールインストール
  2. インストール済みのNetatalkを削除
  3. Netatalk本体インストール
    1. パッケージダウンロード&展開
    2. configure
    3. make
    4. sudo make install
  4. Netatalk設定
  5. 動作確認

前回と同じパターンです。次の記事を参考にして下さい。

工程1です。

$ sudo apt-get install libdb4.8-dev (CNIDの管理のために必要)
$ sudo apt-get install libssl-dev (uams_dhx.soを使う時に必要)
$ sudo apt-get install libgcrypt11-dev (uams_dhx2.soを使う時に必要)
$ sudo apt-get install libslp-dev (SLPのために必要)
$ sudo apt-get install libavahi-client-dev (Zeroconfのために必要)

SLPは、Mac OS X 10.2よりも古いOS(Mac OS 9とか)に、ファイルサーバを知らせる仕組みですので、通常は不要です。私は、Mac OS 9.2.2のMacを持っている(けど使っていない)ので、設定しています。

LDAP/ACLサポートのために、追加で必要になるパッケージもインストールします。

$ sudo apt-get install libldap2-dev (LDAPのために必要)
$ sudo apt-get install libacl1-dev (ACLのために必要)

ACLに対応させないなら不要です。ACLに対応させるには、Ubuntu側/SnowLeopard側もLDAPに対応させなければならないので、非常に困難です。次の記事をご覧下さい。

工程2は、上記と同じですので省略します。

設定ファイルは、あらかじめmvで退避して置きます。アンインストールの前に、sudo service netatalk stopで、サービスを停止しておいて下さい。

$ cd /etc/default
$ sudo mv netatalk .netatalk.old
$ cd /etc
$ sudo mv netatalk netatalk.old

工程3に入ります。工程3-1も、上記の記事を参考にしてください。ダウンロードするパッケージは、2.2beta2 (gzip)または(bzip2)をお使い下さい。

パッケージは、~/work/netatalkで展開しています。今回は、bzip2を使いました。

$ cd
$ mkdir work
$ cd work
$ mkdir netatalk
$ cd netatalk
$ tar xvjf ~/Downloads/netatalk-2.2beta2.tar.bz2

工程3-2です。configureします。

$ cd
$ cd work/netatalk/netatalk-2.2beta2
$ ./configure --enable-debian \ (UbuntuはDebian系なので)
> --enable-srvloc \ (SLPのために必要)
> --prefix=/usr \ (できたファイルは/usr以下に置く)
> --with-pkgconfdir=/etc/netatalk \ (設定ファイル置き場)
> --with-uams-path=/usr/lib/netatalk (ユーザ認証ライブラリ置き場)

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
        CFLAGS =
    BDB:
        LIBS   =  -ldb-4.8
        CFLAGS =
    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:             yes

次の工程3-3は、コンパイルです。

$ cd
$ cd work/netatalk/netatalk-2.2beta2
$ make

コンパイルが終わった後に、./etc/afpd/afpd -Vで、バージョンを確認しておいた方が良いと思います。

工程3-4は、インストールです。

$ cd
$ cd work/netatalk/netatalk-2.2beta2
$ sudo make install

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

$ /usr/sbin/afpd -V
afpd 2.2beta2 - 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:	Yes
            EA support:	ad | sys
          LDAP support:	Yes
             afpd.conf:	/etc/netatalk/afpd.conf
   AppleVolumes.system:	/etc/netatalk/AppleVolumes.system
  AppleVolumes.default:	/etc/netatalk/AppleVolumes.default
    afp_signature.conf:	/etc/netatalk/afp_signature.conf
      afp_voluuid.conf:	/etc/netatalk/afp_voluuid.conf
         afp_ldap.conf:	/etc/netatalk/afp_ldap.conf
       UAM search path:	/usr/lib/netatalk/
  Server messages path:	/etc/netatalk/msg/
              lockfile:	/var/lock/afpd

工程4です。各種設定をします。

新しくインストールされた設定ファイルと、前回の設定ファイルとを比較して、違いを確認しておいた方が良いと思います。

$ cd /etc/default
$ diff .netatalk.old netatalk
$ cd /etc/netatalk
$ diff ../netatalk.old/AppleVolumes.default AppleVolumes.default
$ diff ../netatalk.old/AppleVolumes.system AppleVolumes.system
$ diff ../netatalk.old/afpd.conf afpd.conf
$ sudo cp -p ../netatalk.old/* .

/etc/default/netatalk, /etc/netatalk/AppleVolumes.default, /etc/netatalk/afp_ldap.confの設定は、次の記事をご覧下さい。

/etc/netatalk/afpd.confには、次の内容を設定しました。ログファイルを残すようにしてあります。

- -tcp -noddp -uamlist uams_guest.so,.so,uams_dhx.so,uams_dhx2.so \
-maccodepage MAC_JAPANESE -unixcodepage UTF8 \
-slp \
-setuplog "Default log_info /var/log/netatalk/default.log" \
-setuplog "Core log_info /var/log/netatalk/core.log" \
-setuplog "Logger log_info /var/log/logger.log" \
-setuplog "CNID log_info /var/log/netatalk/cnid.log" \
-setuplog "AFPDaemon log_info /var/log/netatalk/afp.log"

afpd.confは、一行または継続行で書かなければなりません。次の記事をご覧下さい。

afpd.confは、私が最初に参考にしたページで、すでに間違っていた書式になっていました。そのページは、今は、直っています。

ログファイルのレベルを最大にするには、log_infoの代わりに、log_maxdebugを設定します。私は、今、ログレベルを最大にして運用しています。

いよいよ、工程5に移ります。設定が終わったら、netatalkを起動します。

$ sudo service netatalk start
Starting Netatalk services (this will take a while):  cnid_metad afpd.

Mac OS X側での動作確認です。Mac OS Xは、Snow Leopard(10.6.6)です。

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

全項目確認して、大丈夫でした。

ACL対応でコンパイルしてあるのですが、SnowLeopard側では、ACL対応として認識されませんでした。多分、LDAP周りだと思うのですが、不明です。

SnowLeopard$ cd /Volumes/john
SnowLeopard$ echo "aaa" > acl.txt
SnowLeopard$ chmod +a "everyone deny delete" acl.txt
chmod: Failed to set ACL on file 'acl.txt': Operation not supported

今回も、私の技量不足で、SnowLeopard側でACL対応にできなかったようです。不完全燃焼です。悔しいなあ。もっと、研究しなくては。

【関連記事】

Posted by お市のかた