プラスα空間

ブログ in お市 のーと

Ubuntu 10.04にnetatalk 2.2alpha1インストール[訂正あり]

HATさんからのトラックバックで、netatalk 2.2alpha1がリリースされていることを教えていただきました。

α版か…。日常的に使うのだと怖いのですが、私の場合、インストールすることが趣味の様になっていますので、試してみる分には問題ありません。

今回は次の方針です。

インストール方法は、次の手順を参考にしました。ありがとうございます。

全体のインストール手順を大まかに書くと、次の様になります。

  1. 関連ツールインストール
  2. Netatalk本体インストール
    1. パッケージダウンロード&展開
    2. バグ対応
    3. configure
    4. make
    5. sudo make install
  3. Netatalk設定

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

Netatalk 2.2で、追加で必要になるパッケージもインストールします。

$ sudo apt-get install uuid-dev (TimeMachineのために必要)
$ sudo apt-get install libavahi-client-dev (Zeroconfのために必要)

configureやコンパイル時にエラーになったので、追加しました。

2. Netatalk本体のインストールです。

2.1 パッケージをダウンロードします。次のリンクをたどって、Firefoxなどでダウンロードして下さい。

次に、パッケージを展開します。ダウンロードしたパッケージが、~/Downloadsにある物とします。

$ cd
$ mkdir work
$ cd work
$ mkdir netatalk
$ cd netatalk
$ tar xvzf ~/Downloads/netatalk-2.2alpha1.tar.gz

工程2-2です。α版なので、まだバグがある様です。パッチを当てました。

この情報を元にpatchファイル(netatalk-2.2alpha1-patch0)を作って、patchコマンドでパッチを当てます。上記の情報を元に、次のファイルを準備しました。

パッチを当てる手順は、次の通りです。パッチファイルが、~/Downloads/netatalk-2.2alpha1-patch0にある物とします。

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

このパッチを当てる前は、VFS_FUNC_VARS_ACLに関するエラーが出ていました。

次の工程、2-3です。configureします。

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

SLPに対応させている(–enable-srvloc)のは、我が家に、Mac OS 9.2.2(Performa 5420)が一台残っているからです。でも、ここ何年かPerformaを使っていないので、SLPに対応させるのは、意味が無いかもしれません。

–enable-zeroconfを指定しなくても、Zeroconfは自動的に有効になる様です(必要なパッケージがインストールされていれば)。

次は、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

2-4です。コンパイルします。

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

インストールする前に、バージョンを確認します。

$ cd
$ cd work/netatalk/netatalk-2.2alpha1
$ ./etc/afpd/afpd -V
afpd 2.2alpha1 - 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
             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/

正しくできている様です。

2-5です。インストールします。

$ sudo service netatalk stop
$ cd
$ cd work/netatalk/netatalk-2.2alpha1
$ sudo make install

念のために、インストールされたバージョンを確認します。

$ /usr/sbin/afpd -V
afpd 2.2alpha1 - 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
             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/

大丈夫な様です。

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

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

/etc/default/netatalkには、次の内容を設定しました。変更点のみ、列挙します。

ATALK_NAME=`/bin/hostname --short`
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'
AFPD_UAMLIST="-U uams_guest.so,uams_dhx.so,uams_dhx2.so"

/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"

/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/usernameは、ログインディレクトリです。

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

$ sudo mkdir /home/u_capsule
$ sudo chown nobody:nogroup /home/u_capsule
$ sudo chmod 775 /home/u_capsule

ログファイルを置くディレクトリを作ります。

$ sudo mkdir /var/log/netatalk

起動します。

$ sudo service netatalk start

Snow Leopardから接続しました。avahi-daemonの設定をしなくても、ちゃんと、サーバが見えます。Time Machineからも見えました。

最初、/etc/default/netatalkで、ATALK_NAMEがデフォルト(`echo ${HOSTNAME}|cut -d. -f1`)のままでは、サーバが見えませんでした。上記のように設定する事で、見えるようになりました。

この記事を書きながら、インストールを進めました。4時間位かかりました。

【関連記事】

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

Ubuntu 10.04にnetatalk 2.2alpha1インストール[訂正あり]”に“7”個のコメント
  • HAT より:

    netatalk 2.2alpha1 リリース

    netatalk 2.2alpha1 がリリースされています。 Netatalk – Networking Apple Macintosh through Open Source まだちゃんと調べてませんが、以下のような変更点があります。 adコマンドにcp, rm, mvの機能を追加。これに伴いafile, achfile, apple_cp, apple_mv, apple_rmコマンド削除 動的なディレクトリとCNIDのキャッシュ。 LinuxでのPOSIX 1e ACLサポート。 Zer…

  • HAT より:

    いっそのこと、ATALK_NAME=の行をコメントアウトするとどうなるでしょうか。
    debian/ubuntu用のinitscriptは、ソース中では
    distrib/initscripts/rc.atalk.debian.tmpl
    なんですが、これをみると、
    ATALK_NAME=`/bin/hostname –short`
    という行が実行され、それよりあとに
    /etc/default/netatalk
    が呼び出されるようになっています。

  • お市 より:

    HATさんへ、コメントありがとうございます。
    ATALK_NAME=の行をコメントアウトして、試してみました。
    ちゃんと、Snow Leopard側から見えました。
    念のため、`echo ${HOSTNAME}|cut -d. -f1`に再設定してみた所、見えなくなりました。

  • HAT より:

    いまDebian上で確認中なんですが、atalkdが存在しないと、
    sudo service netatalk start
    とやっても何も起動しないバグがあります。
    にもかかわらず、この記事では問題なく起動できています。
    古いバージョンのnetatalkをuninstallしないまま、alpha1をインストールしたのではないでしょうか。
    私の想像では、古いatalkdが残っています。

  • お市 より:

    HATさんへ、再びコメントありがとうございます。
    ご察しの通り、2.1.4を消さずに、2.2alpha1を上書きインストールしました。
    apt-get removeで消してから、2.2alpha1をインストールし直してみます。
    それと、2.2alpha2も試してみようと思います。
    どちらも、土日の作業になると思います。

  • お市 より:

    HATさんへ、こんな所ですみません。
    もし、お読みになられていましたら…。
    Netatalk and Sambaのページの先頭の、日付が10月になってしまっています。
    11月ですよね?

  • お市 より:

    HATさんへ、
    2.1.4をsudo make uninstallして、2.2alpha1をsudo make installしました。
    やはり、
    sudo service netatalk start
    で起動しませんでした。
    2.2alpha2でも試してみました。同じ結果になりました。

コメントを残す