プラスα空間

ブログ in お市 のーと

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

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. 動作確認

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

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

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

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

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

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

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

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

$ sudo make uninstall

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

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で、動作確認しました。

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

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

別名で接続

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

ログイン

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

ボリューム

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

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

すばらしい!

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

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

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

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

文字化け

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

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

TimeMachineエラー

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

TimeMachine英数字

バグでしょうか…。

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

Ubuntu 10.04にnetatalk 3.0alpha3インストール[追記あり]”に“13”個のコメント
  • HAT より:

    非常にややこしいのですが、iconv()の実装で確認すべきなのは、「UTF8」ではなくて「UTF-8」です。
    あまりにもややこしくてうまく説明できません。
    ちなみに、netatalkのドキュメントをよーく読むと、UTF8とUTF-8を使い分けてます。たぶん誰も気付いてないと思います。
    http://netatalk.sourceforge.net/3.0/htmldocs/configuration.html

    iconvの実装の問題については、OpenIndianaで発見したものであって、現在も調査中です。私のページの解説も不十分かもしれません。
    申し訳ありませんが、iconvの確認の部分は削除していただけないでしょうか。
    少なくとも、UbuntuのようなメジャーなLinuxディストリビューションではiconv()は確実に動くので、確認しなくてもいいです。

    • HATさんへ、いつもコメントありがとうございます。
      「UTF8」と「UTF-8」が違う物だったのですか! 初めて知りました。
      UTF-8 – Wikipedia
      iconvの確認部分は削除しました。

      • HAT より:

        iconv()関数の実装は沢山あります。
        Ubuntu等が採用しているのは、glibc (GNU libc)のiconv()です。このiconv()はUTF8とUTF-8を同一に扱います。
        他にlibiconv (GNU libiconv)の実装があって、これはUTF-8だけでありUTF8という文字コードはありません。
        OpenIndianaに関しては調査中です。

        netatalkの設定ファイルでUTF8を指定した場合、iconv()のUTF-8を呼び出し、ラッパーのような動作をしてMac特有のUTF8-MACが使えるようにしています。
        したがって、iconv()はUTF-8に対応していなければならず、設定ファイルではUTF8と書く必要があります。
        ややこしくて誰にも理解してもらえないと思いますが。

        • HATさんへ、再びコメントありがとうございます。
          Ubuntuでiconv -lを再実行してみました。
          $ iconv -l | egrep UTF
          ISO-10646/UTF-8/
          ISO-10646/UTF8/
          UTF-7//
          UTF-8//
          UTF-16//
          UTF-16BE//
          UTF-16LE//
          UTF-32//
          UTF-32BE//
          UTF-32LE//
          UTF7//
          UTF8//
          UTF16//
          UTF16BE//
          UTF16LE//
          UTF32//
          UTF32BE//
          UTF32LE//
          確かに、UTF-8とUTF8の両方があります。

          OS X Lionで実行すると、次のようになりました。
          % iconv -l | egrep UTF
          UTF-8 UTF8
          UTF-8-MAC UTF8-MAC
          UTF-16
          UTF-16BE
          UTF-16LE
          UTF-32
          UTF-32BE
          UTF-32LE
          UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
          なるほど、UTF8-MACと言うのがありますね。

          文字コードの扱い、変態的ですね…。

  • HAT より:

    Time Machineでnon-ASCIIボリューム名が使えない件については、これから調査します。
    たぶんバグです。

  • HAT より:

    ええと、とりあえず、[Global]セクションに
    mac charset = MAC_JAPANESE
    と書いておくとバグ回避できます。
    本来、Time MachineはMAC_JAPANESEと関係ない筈なので、おかしな話です。
    たぶん文字コードの扱いにバグがあります。

    • HAT より:

      お願いがあります。
      etc/afpd/afp_avahi.cに、以下のテスト用の1行パッチを当てて試してもらえないでしょうか。
      http://www003.upp.so-net.ne.jp/hat/files/tm_volname.patch
      たぶん直ると思います。

      • HATさんへ、再びコメントありがとうございます。
        パッチをあてて、makeし直しました。
        TimeMachine環境設定で文字化けせず、バックアップディスクとしても使えました。

        余談ですが、昨日”netatalk-devel”に参加しました。とりあえず、様子を見てみようと思います。

    • HATさんへ、再びコメントありがとうございます。
      [Global]セクションに次の設定を追加しました。
      mac charset = MAC_JAPANESE
      確かに、TimeMachine環境設定の文字化けは無くなりました。
      バックアップディスクとしても使えます。

コメントを残す