Ubuntu 10.04にnetatalk 2.2alpha2インストール(バグ対応)[追記あり]

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

HATさんから、バグ対策パッチをいただきました。パッチを当てて、インストールしてみました。

現在のnetatalk-2.2alpha2には(alpha1も)、Debian系のLinuxで、atalkdが無いと、sudo service netatalk startしても、何も起きないというバグがあるとの事です。

いまDebian上で確認中なんですが、atalkdが存在しないと、
sudo service netatalk start
とやっても何も起動しないバグがあります。

投稿: HAT | 2010年11月11日 (木) 23時10分

今回の方針は、次の通りです。

  • パッチを当てて、再インストールのみ
  • –enable-ddpをしない

大まかな、インストール手順は、次の通りです。

  1. 関連ツールインストール
  2. インストール済みのNetatalkを削除
    • インストールに使ったディレクトリも削除(退避)する
  3. Netatalk本体インストール
    1. パッケージダウンロード&展開
    2. バグ対応(パッチ当て)
    3. configure
    4. make
    5. sudo make install
  4. Netatalk設定

工程1, 2については、次の記事を参考にしてください。

工程2で、make cleanを使わずに、パッケージを再展開しています。昔、netatalkとは違うパッケージで、make cleanがうまく行かなかった事があるので、再コンパイルの際は、いつもパッケージを再展開しています。

工程3に入ります。工程3-1も、上記の記事を参考にしてください。

工程3-2が、今回の対応箇所です。パッチは、次の物です。

ファイル名の指定箇所が、そのままでは使えなかったので、修正しました。次のファイルです。

パッチは、次の方法で当てます。パッチファイルが、~/Downloads/netatalk-2.2alpha2-patch0にある物とします。

$ cd
$ cd work/netatalk/netatalk-2.2alpha2
$ patch -p 0 < ~/Downloads/netatalk-2.2alpha2-patch0

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

$ cd
$ cd work/netatalk/netatalk-2.2alpha2
$ ./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 = -luuid -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:             no

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

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

記載を省略しますが、コンパイル後のバージョンも確認しています。次のコマンドで確認できます。

$ cd
$ cd work/netatalk/netatalk-2.2alpha2
$ ./etc/afpd/afpd -V

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

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

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

$ /usr/sbin/afpd -V
afpd 2.2alpha2 - 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:	No
            EA support:	ad | sys
          LDAP support:	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/
  Server messages path:	/etc/netatalk/msg/

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

$ cd /etc/default
$ sudo mv netatalk .netatalk-2.2alpha2.orig
$ sudo cp -p .netatalk-2.2alpha1 netatalk
$ cd /etc
$ sudo mv netatalk netatalk-2.2alpha2.orig
$ sudo cp -pr netatalk-2.2alpha1 netatalk

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

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

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

LepoardとSnow Leopardからつないでみました。それで気が付いたのですが、アイコンが変わるのですね。

Leopardだと、Time Capsuleみたいな感じです。
Leopard

Snow Leopardだと、iMacみたいな感じです。

Snowleopard

ここで、大問題を発見してしまいました。

作成したスクリーンショットのファイル(Leopard.png, SnowLoepard.png)を、Snow LeopardのFinderで、デスクトップフォルダからNetatalkのディスクにコピーしようとすると、次のエラーが出ます。
Error

「予期しないエラーが起きたため、操作を完了できません(エラーコード -50)」が出ます。

ログファイル(/var/log/netatalk/afp.log)には、次のメッセージが残っていました。表示のため、改行を入れています。

Nov 17 22:17:14.431643 afpd[4035] {ea_sys.c:336} (E:AFPDaemon):
sys_set_ea(SnowLeopard.png/com.apple.metadata:kMDItemIsScreenCapture):
error: Operation not supported
Nov 17 22:19:39.600362 afpd[4035] {ea_sys.c:336} (E:AFPDaemon):
sys_set_ea(Leopard.png/com.apple.metadata:kMDItemIsScreenCapture):
error: Operation not supported

どういうときに、この現象が起きるかを確認してみました。変な英語ですが、ご参考用に書いてみました。

  • 新規フォルダの作成はできました。(Snow Leopard)
    It is O.K. to create a new folder in Snow Leopard.
  • netatalk側の同じフォルダ内で、ファイルやフォルダの複製はできました。(Snow Leopard)
    It is O.K. to copy a file or folder in Snow Leopard.
  • ローカルディスクにあるスクリーンショット以外のファイルは、netatalk側にコピーできました。(Snow Leopard)
    It is O.K. to copy files  in Snow Leopard which are not screen shots.
  • コピーできるファイルと、できないファイルがあるようです。(Snow Leopard)
    Some file (screen shot) can copy from local disk to netatalk disk. But specific files can not copy from Local disk to netatalk disk.
  • Snow Leopardではコピーできないファイル(スクリーンショット)を、Leopardでは普通にコピーできていました。
    The specific files (screen shot) that can not copy in Snow Leopard, but the files can copy in Leopard.
  • 2.2alpha1, 2.1.4でも、同様の結果となりました。やはり、特定のファイルでエラーになります。(Snow Leopard)
    2.2alpha1 and 2.1.4 get same results. The specific files cause error in Snow Lopard.

コピーできるファイルと、コピーできないファイルで、何が違うのか想像できません。今の所、コピーできないファイルは、スクリーンショットのみです。

LeopardではOKで、Snow LeopardではNGです。また、ログファイルのメッセージからすると、EA関係でしょうか? EA関係は、Frank Lahmさんですよね?

こんな所でのバグ報告で、申し訳ありません。週末まで、時間が取れないと思います。

HATさん、よろしくお願いします。

(追記 2010-11-20 22:19)

Snow Leopardで、ファイルがコピーできない原因は、Ubuntu側で、ファイルシステムに拡張属性を有効にしていないためでした。

拡張属性を有効にした所、無事にコピーできる様になりました。

Netatalkを疑ってしまって、申し訳ありませんでした。

Posted by お市のかた