Ubuntu 10.04にnetatalk 3.0alpha3インストール[追記あり]

2012年5月15日netatalk

netatalk 3.0alpha1がリリースされたと思っていたら、あっという間にalpha3まで行っていました。早いです!

ブログの移転も一区切りついてきたので、netatalkに戻ってきました。

netatalk 3.0alpha3をUbuntu 10.04 Lucid Lynxにインストールしましたので報告します。

詳しいインストール方法は、HATさんのウェブサイトを見れば、一発です。

基本的に、この方法に則ってインストールしています。

私が取った手順は、次の通りです。

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

なお、テスト環境は次の通りです。

  • サーバ
    • PowerMac G4/MDD
    • Ubuntu 10.04 (EA, ACL, LDAP設定済み)
  • クライアント1
    • Macbook Pro (early 2011)
    • OS X 10.7.4 Lion
  • クライアント2
    • iMac (mid 2007)
    • Mac OS X 10.6.8 Snow Leopard (LDAP設定済み)

それでは、順を追って説明していきたいと思います。

1. インストール済みのNetatalkを削除

前のnetatalkをどうやってインストールしていたかによって違います。

Ubuntu標準のnetatalkでインストールした場合は、Synapticパッケージ・マネージャや、apt-getでアンインストールしてください。

次の様な手順で、自分でdpkgを作った場合は、dpkgでアンインストールしてください。

$ sudo dpkg --purge netatalk (設定ファイルも消す)

自分で、netatalkのtarファイルからインストールした場合は、その作業ディレクトリで次のコマンドを実行します。

$ sudo make uninstall

必要に応じて、設定ファイルはバックアップしておいてください。

  • /etc/init.d/netatalk
  • /etc/default/netatalk
  • /etc/netatalk/afpd.conf
  • /etc/netatalk/AppleVolumes.default

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

次のツールがインストールされている必要があります。

$ sudo apt-get install libdb4.8-dev (CNIDの管理のために必要。4.6以上ならOK)
$ sudo apt-get install libgcrypt11-dev (uams_dhx2.soを使う時に必要)
$ sudo apt-get install libavahi-client-dev (Zeroconfのために必要)

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

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

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

記事を書いていませんが、Mac OS XでもLDAPを利用してログインできるようにしておく必要があります。かなり面倒です。私が参考にしたウェブサイトがどこだったか、調べられません…。ブックマークしてあったはずなのに。

これだけの設定をしているのですが、まだ不完全なようです。私の環境では、Mac OS XでACLを使えません。原因調査中です。

以上のツールは、今までnetatalkを使っていたなら、既にインストールされているかもしれませんが、確認しておいてください。

(追記 2012-05-14 22:00 iconv()関数が必要なのですが、Ubuntuは大丈夫との事です。)

3. Netatalk本体インストール

インストールは、次の手順となります。

  1. パッケージダウンロード&展開
  2. configure
  3. make
  4. sudo make install

順を追って説明します。

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

パッケージは、次のページからダウンロードしてきます。

お好みに応じて、.bz2(ファイルサイズ小さい)、か.gz(一般的)を選んでください。私は、.bz2をダウンロードしてきました。

作業ディレクトリの作成〜パッケージの展開は、次の通りです。

$ cd
$ mkdir work
$ cd work
$ mkdir netatalk
$ cd netatalk
$ tar xvjf netatalk-3.0alpha3.tar.bz2

3.2 configure

パッケージの展開が終わったら、configureします。configureとは、インストールされるOSの環境を調べて、makeに必要なファイルを自動生成する事です。

configureの際にオプションを与えて、インストール状態を変更する事もできます。

“–help"オプションで、使用できるオプションが表示されるので、確認してください。

$ configure --help

最初の場合、何を設定したら良いのかわからないと思います。make終了後、"afpd -V"で表示される内容を確認し、何度かconfigerとmakeをやり直す事になると思います。その場合、"make clean"で、make環境を奇麗にしておく事を忘れないでください。

私の場合、次のように設定しました。

$ cd ~/work/netatalk/netatalk-3.0alpha3/
$ ./configure --with-init-style=debian --prefix=/usr --localstatedir=/var --sysconfdir=/etc

configureの最後に、設定状況のまとめがあるので、確認してください。少なくても、必要なライブラリが定義されている事を確認しなければならないようです。

Using libraries:
    LIBS = -lpthread
    CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/sys -D_U_="__attribute__((unused))" -g -O2
    SSL:
        LIBS   =  -lcrypto
        CFLAGS =  -I/usr/include/openssl
    LIBGCRYPT:
        LIBS   = -lgcrypt
        CFLAGS =
    PAM:
        LIBS   =  -lpam
        CFLAGS =
    WRAP:
        LIBS   = -lwrap
        CFLAGS =
    BDB:
        LIBS   =  -ldb-4.8
        CFLAGS =
    ZEROCONF:
        LIBS   =  -lavahi-common -lavahi-client
        CFLAGS =  -D_REENTRANT
    LDAP:
        LIBS   =  -lldap
        CFLAGS =
Configure summary:
    init style:
         debian
    AFP:
         Extended Attributes: ad | sys
         ACL support: yes
    CNID:
         backends:  dbd last tdb
    UAMS:
         DHX     (PAM SHADOW)
         DHX2 (PAM SHADOW)
         RANDNUM (afppasswd)
         clrtxt  (PAM SHADOW)
         guest
    Options:
         Zeroconf support: yes
         tcp wrapper support:     yes
         quota support:           yes
         admin group support:     yes
         valid shell check:       yes
         cracklib support:        no
         Samba sharemode interop: no
         ACL support:             yes
         Kerberos support:        yes
         LDAP support:            yes

3.3 make

configureが正常終了したら、makeします。

$ cd ~/work/netatalk/netatalk-3.0alpha3/
$ make

makeが終わったら、出来上がった状態を次の方法でチェックします。

$ ./etc/afpd/afpd -V
afpd 3.0alpha3 - 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:

          AFP versions:	2.2 3.0 3.1 3.2 3.3
         CNID backends:	dbd last tdb
      Zeroconf support: Avahi
  TCP wrappers support:	Yes
         Quota support:	Yes
   Admin group support:	Yes
    Valid shell checks:	Yes
      cracklib support:	No
            EA support: ad | sys
           ACL support:	Yes
          LDAP support:	Yes

              afp.conf:	/etc/afp.conf
       state directory:	/var/netatalk/
    afp_signature.conf:	/var/netatalk/afp_signature.conf
      afp_voluuid.conf:	/var/netatalk/afp_voluuid.conf
       UAM search path:	/usr/lib/netatalk//
  Server messages path:	/var/netatalk/msg/

特に、設定ファイルがどこに置かれているかを確認してください。

希望通りになっていなかったら、やり直します。

$ cd ~/work/netatalk/netatalk-3.0alpha3/
$ make clean
$ configure ...
$ make
$ ./etc/afpd/afpd -V

3.4 sudo make install

希望通りにafpdができていたら、インストールします。

$ cd ~/work/netatalk/netatalk-3.0alpha3/
$ sudo make install

4. Netatalk設定

netatalk 3.xになって、設定ファイルが一つになりました。

私のconfigureの設定では、設定ファイルは"/etc/afp.conf”に置かれます。

HATさんのページから、ほぼそのままコピーして使っています。

;
; Netatalk 3.x configuration file
;

[Global]
    vol preset = 全ボリュームのデフォルト
    log level = default:note
    log file = /var/log/netatalk.log

[全ボリュームのデフォルト]
    file perm = 0600
    directory perm = 0700

[Homes]
    basedir regex = /home

[MY_TIMEMACHINE]
    path = /afp/time_capsule
    time machine = yes
    vol size limit = 1024

[みんなの共有はここ]
    path = /afp/shared
    file perm = 0666
    directory perm = 0777

TimeMachine用ボリューム名は変更しました。全角文字だと、使えないようでした。後述します。

5. 起動

設定が終わったら、起動します。

$ sudo service netatalk start
Starting Netatalk services:  netatalk.

6. 動作確認

Mac OS X 10.6.8 Snow Leopard、およびOS X 10.7.4 Lionで、動作確認しました。

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

Avahi-daemonがきちんと動作していれば、Finderから見えるはずです。

サイドバーからUbuntuのホストが見えていれば正常です。ここを開いて、「別名で接続…」をします。

別名で接続

UbuntuのログインIDとパスワードを入力します。

ログイン

接続したら、ボリュームが見えるようになります。

ボリューム

ボリューム名に全角文字が使えるなんて、何だか新鮮です!

ファイル名の確認をしました。

  • Ubuntu側で":"の部分は、Mac側では"/"に置き換わっています。
  • Mac側で"/"の部分は、Ubuntu側で":"に置き換わっています。

すばらしい!

最後に、TimeMachineのテストをする時に、TimeMachine用のボリューム名が全角文字だと使えない事がわかりました。

Finderでは全角文字表示されるのですが、「システム環境設定」の「TimeMachine環境設定」だと文字化けします。

TimeMachineボリューム名が漢字入り

Finderでは「私のタイムマシーン」として見えています。

文字化け

ですが、「TimeMachine環境設定」だと、「???#1」と文字化けしています。

「バックアップディスクとして使用」は選べるのですが、実際にバックアップをしようとすると、次のエラーになります。

TimeMachineエラー

TimeMachineのボリューム名を、英数字のみにすると、正しく使えました。

TimeMachine英数字

バグでしょうか…。

これ以外は、正常動作しているように思えます。

Posted by お市のかた