Ubuntu 10.04にnetatalk 2.2beta1インストール[追記・訂正あり]

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

netatalk 2.2beta1がリリースされました。インストールしてみました。一応、ACL対応でコンパイルしたのですが、不完全です。

本当は、やっと時間が取れたので、alpha5をインストールしようとしたら、beta1がリリースされていました。

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

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

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

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

工程1です。以前は、uuid-devが必要でしたが、不要になりました。(HATさんからの情報です。)

$ 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のために必要)

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.2beta1 (gzip)です。お好みに応じて、(bzip2)をお使い下さい。

現在、ダウンロードしづらくなっているかもしれません。私は、何回かダウンロードして、成功しました。

パッケージは、~/work/netatalkで展開しています。

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

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

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

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: yes
         Large file support (>2GB) for AFP3: yes
         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.2beta1
$ make

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

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

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

$ /usr/sbin/afpd -V
afpd 2.2beta1 - 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です。各種設定をします。

/etc/default/netatalkは、中身の変更があった様です。古い項目(legacy)が後ろの方にまとめられていました。

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

$ 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/afpd.conf, /etc/netatalk/AppleVolumes.defaultの設定は、次の記事をご覧下さい。

3です。各種設定をします。

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

/etc/default/netatalkには、オリジナルを書き直して、次の内容を設定しました。変更点のみ、列挙します。

ATALK_UNIX_CHARSET='UTF8'
ATALK_MAC_CHARSET='MAC_JAPANESE'
AFPD_UAMLIST="-U uams_guest.so,uams_dhx.so,uams_dhx2.so"

以前設定していた、ATALK_NAMEは設定不要になりました。

/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

(追記 2011-02-01 00:45 afpd.confは、一行で書かなければならないそうです。複数行に分ける場合は、\が必要です。コメントで、HATさんに教えていただきました。)

ログファイルの設定方法は、次の記事を参考にしています。ありがとうございます。

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

:DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE
volcharset:UTF8 dperm:0700 fperm:0600 ea:sys (実際には1行)
/home/username "username" allow:@username deny:admin
/home/u_capsule "Ubuntu Capsule" options:tm volsizelimit:5000
/home/john "john" allow:john deny:admin

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

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

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

/home/johnは、LDAPユーザです。

/etc/netatalk/afp_ldap.confを編集します。

ldap_server      = localhost
ldap_auth_method = simple
ldap_auth_dn     = cn=admin,dc=example,dc=com
ldap_auth_pw     = LDAP管理者のパスワード
ldap_userbase    = ou=people,dc=example,dc=com
ldap_userscope   = one
ldap_groupbase   = ou=groups,dc=example,dc=com
ldap_groupscope  = one
ldap_uuid_attr   = apple-generateduid
ldap_name_attr   = cn
ldap_group_attr  = cn

いよいよ、工程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のディスクに表示されるか?

はじめ、ファイルが正しく見えませんでした。仕方が無いので、Ubuntu側で、.Apple*を削除したら、正常動作するようになりました。なんでだろう…。本当は、DBの確認をするべきなのですが、何もせずに消してしまいました。

その後は、全項目確認して、大丈夫でした。

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

今回も、私の技量不足で、SnowLeopard側でACL対応にできなかったようです。不完全燃焼です。

【関連記事】

(訂正 2011-03-06 00:02)afpd.confの書き方を修正しました。

Posted by お市のかた