Ubuntu 14.04にnetatalk 3.1.3インストール

2016年1月23日Mac,netatalk,パソコン・インターネット

昔書いた記事にコメントが付いていました。

コメントによると、次の事をしたい様です。

  • afp.confを/usr/local/etcに置きたい
  • 上記の方法だと、netatalk 3.1.3で問題が出る

検証のために、Ubuntu 14.04にnetatalk 3.1.3をインストールしました。

最終形態としては、debianパッケージの形でインストールできる様にする事ですが、まずは通常の方法でインストールします。と言っても、HATさんが既に完璧なドキュメントを作って下さっているので、それをなぞるだけです。ありがとうございます。

詳細は、こちらを見ていただく事にして、やる事だけまとめます。

  1. 必要パッケージインストール
  2. ビルド
  3. ビルド結果のチェック
  4. 設定
  5. 起動
  6. 動作チェック

それでは、順番に解説します。

1. 必要パッケージインストール

今回、ParallelsにUbuntu 14.04をクリーンインストールしてから、netatalkをインストールしました。仮想環境があると便利ですね。っていうか、仮想環境がないと、各種検証ができません。

必要パッケージは、上記リストに書かれています。そのまま、apt-get installコマンドでインストールします。

$ sudo apt-get install build-essential libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libmysqlclient-dev libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev tracker libtracker-sparql-0.16-dev libtracker-miner-0.16-dev

上記ページに、libtrackerとtrackerのバージョンの確認について書かれています。

$ apt search libtracker-sparql
ソート中... 完了
全文検索... 完了  
gir1.2-tracker-0.16/trusty-updates,now 0.16.2-1ubuntu4.1 amd64
  GObject introspection data for Tracker

libtracker-sparql-0.16-0/trusty-updates,now 0.16.2-1ubuntu4.1 amd64
  metadata database, indexer and search tool - library

libtracker-sparql-0.16-dev/trusty-updates,now 0.16.2-1ubuntu4.1 amd64
  metadata database, indexer and search tool - development files

libtracker-sparql-doc/trusty-updates 0.16.2-1ubuntu4.1 all
  metadata database, indexer and search tool - API documentation

$ apt search libtracker-miner
ソート中... 完了
全文検索... 完了  
gir1.2-tracker-0.16/trusty-updates,now 0.16.2-1ubuntu4.1 amd64
  GObject introspection data for Tracker

libtracker-miner-0.16-0/trusty-updates,now 0.16.2-1ubuntu4.1 amd64
  tracker data miner library

libtracker-miner-0.16-dev/trusty-updates,now 0.16.2-1ubuntu4.1 amd64
  tracker data miner library - development files

libtracker-miner-doc/trusty-updates 0.16.2-1ubuntu4.1 all
  tracker data miner library - API documentation

“0.16"が最新の様です。インストールしたtrakerも0.16です。

$ dpkg-query -l tracker
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                                   バージョン               アーキテクチャ           説明
+++-======================================-========================-========================-==================================================================================
ii  tracker                                0.16.2-1ubuntu4.1        amd64                    metadata database, indexer and search tool

2. ビルド

Netatalk本体は、次のページにリンクが張られています。

bzip2とgzがありますので、お好きな方をどうぞ。

$ tar xvjf netatalk-3.1.3.tar.bz2
$ cd netatalk-3.1.3

このディレクトリに、configureがあるので、"–help"オプションを使って、使えるオプションを調べられます。今回は、上記ページの設定のままでインストールします。

$ ./configure \
        --with-init-style=debian \
        --with-cracklib \
        --enable-krbV-uam \
        --with-pam-confdir=/etc/pam.d \
        --with-dbus-sysconf-dir=/etc/dbus-1/system.d \
        --with-tracker-pkgconfig-version=0.16
 :
Compilation summary:
    CPPFLAGS       = -I$(top_srcdir)/include -I$(top_builddir)/include 
    CFLAGS         = -D_U_="__attribute__((unused))" -g -O2
    LIBS           = -ldl  -lcrack
    PTHREADS:
        LIBS   = 
        CFLAGS = -pthread
    TRACKER:
        LIBS   = -Wl,--export-dynamic -pthread -ltracker-sparql-0.16 -lgio-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0  
        CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/tracker-0.16 -I/usr/include/tracker-0.16/libtracker-sparql  
    SSL:
        LIBS   =  -L/usr/lib64 -lcrypto
        CFLAGS =  -I/usr/include/openssl
    LIBGCRYPT:
        LIBS   = -lgcrypt
        CFLAGS = 
    PAM:
        LIBS   =  -lpam
        CFLAGS = 
    WRAP:
        LIBS   = -lwrap
        CFLAGS = 
    BDB:
        LIBS   =  -L/usr/lib64 -ldb-5.3
        CFLAGS = 
    GSSAPI:
        LIBS   = -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
        CFLAGS = 
    ZEROCONF:
        LIBS   =  -lavahi-common -lavahi-client
        CFLAGS =  -D_REENTRANT
    LDAP:
        LIBS   =  -lldap
        CFLAGS = 
    LIBEVENT:
        bundled
    TDB:
        bundled
    MySQL:
        LIBS   = -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl
        CFLAGS = -I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing   -g -DNDEBUG
Configure summary:
    INIT STYLE:
         debian
    AFP:
         Extended Attributes: ad | sys
         ACL support: yes
         Spotlight: yes
    CNID:
         backends:  dbd last tdb mysql
    UAMS:
         DHX     (PAM SHADOW)
         DHX2    (PAM SHADOW)
         RANDNUM (afppasswd)
         Kerberos V
         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:        yes
         ACL support:             auto
         Kerberos support:        yes
         LDAP support:            yes
         AFP stats via dbus:      yes
         dtrace probes:           yes
    Paths:
         Netatalk lockfile:       /var/lock/netatalk
         init directory:          /etc/init.d
         dbus system directory:   /etc/dbus-1/system.d
         pam config directory:    /etc/pam.d
    Documentation:
         Docbook:                 no

お手軽だなあ。configureのまとめが最後に出るので、チェックします。問題なさそうです。確認が終了したので、makeします。

$ make
$ ./etc/afpd/afpd -V
afpd 3.1.3 - 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 3.4 
         CNID backends:	dbd last tdb mysql 
      Zeroconf support:	Avahi
  TCP wrappers support:	Yes
         Quota support:	Yes
   Admin group support:	Yes
    Valid shell checks:	Yes
      cracklib support:	Yes
            EA support:	ad | sys
           ACL support:	Yes
          LDAP support:	Yes
         D-Bus support:	Yes
     Spotlight support:	Yes
         DTrace probes:	Yes

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

make installする前に、出来上がったバイナリをチェックしておくと良いと思います。特に、おかしな所は見当たりません。よって、make installします。

$ sudo make install

3. ビルド結果のチェック

正しく、バイナリがインストールされているか確認します。

$ which afpd
/usr/local/sbin/afpd
$ afpd -V
afpd 3.1.3 - 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 3.4 
         CNID backends:	dbd last tdb mysql 
      Zeroconf support:	Avahi
  TCP wrappers support:	Yes
         Quota support:	Yes
   Admin group support:	Yes
    Valid shell checks:	Yes
      cracklib support:	Yes
            EA support:	ad | sys
           ACL support:	Yes
          LDAP support:	Yes
         D-Bus support:	Yes
     Spotlight support:	Yes
         DTrace probes:	Yes

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

大丈夫です。

4. 設定

設定ファイルは、afp.confです。上記の確認結果にある様に、"/usr/local/etc/afp.conf"です。動作確認だけなので、上記のページの設定通りにします。

[Global]
    mac charset = MAC_JAPANESE

[Homes]
    basedir regex = /home

[Test Volume]
    path = /export/test1

[My Time Machine Volume]
    path = /export/timemachine
    time machine = yes
    vol size limit = 512000

ディレクトリを作っておきます。

$ sudo mkdir -p /export/test1
$ sudo chmod 777 /export/test1/
$ sudo mkdir /export/timemachine
$ sudo chmod 777 /export/timemachine/

それと、ACLとEA(拡張属性)を有効にするために、/etc/fstabを修正しておきます。

$ vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#                
# / was on /dev/sda1 during installation
UUID=oooooooo-oooo-oooo-oooo-oooooooooooo /               ext4    defaults,user_xattr,acl,errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=oooooooo-oooo-oooo-oooo-oooooooooooo none            swap    sw              0       0

修正後、ファイルシステムをマウントし直します。

$ sudo mount -o remount /

これで、ACLとEAが使える様になっているはずです。

5. 起動

avahi-daemonとnetatalkを起動します。

$ sudo service avahi-daemon start
start: Job is already running: avahi-daemon

あれ? 動いているみたい。それじゃあ、restartします。

$ sudo service avahi-daemon restart
avahi-daemon stop/waiting
avahi-daemon start/running, process 30475
$ sudo service netatalk start
Starting Netatalk services:  netatalk.

自動起動は、次の様にして設定できる様です。やり方が、変更になっているのですね。

$ sudo update-rc.d avahi-daemon defaults
 Adding system startup for /etc/init.d/avahi-daemon ...
   /etc/rc0.d/K20avahi-daemon -> ../init.d/avahi-daemon
   /etc/rc1.d/K20avahi-daemon -> ../init.d/avahi-daemon
   /etc/rc6.d/K20avahi-daemon -> ../init.d/avahi-daemon
   /etc/rc2.d/S20avahi-daemon -> ../init.d/avahi-daemon
   /etc/rc3.d/S20avahi-daemon -> ../init.d/avahi-daemon
   /etc/rc4.d/S20avahi-daemon -> ../init.d/avahi-daemon
   /etc/rc5.d/S20avahi-daemon -> ../init.d/avahi-daemon
$ sudo update-rc.d netatalk defaults
 Adding system startup for /etc/init.d/netatalk ...
   /etc/rc0.d/K20netatalk -> ../init.d/netatalk
   /etc/rc1.d/K20netatalk -> ../init.d/netatalk
   /etc/rc6.d/K20netatalk -> ../init.d/netatalk
   /etc/rc2.d/S20netatalk -> ../init.d/netatalk
   /etc/rc3.d/S20netatalk -> ../init.d/netatalk
   /etc/rc4.d/S20netatalk -> ../init.d/netatalk
   /etc/rc5.d/S20netatalk -> ../init.d/netatalk

6. 動作チェック

一応、次の雹のチェックをしています。無事動いている様です。

OS X 10.9.4
サーバーを見つけられるか? OK
フォルダを作れるか? OK
MacからUbuntuにコピーできるか? OK
UbuntuからMacにコピーできるか? OK
コピーされたファイルのパーミッションはどうか? OK
コピーされたファイルのタイムスタンプはどうか? OK
ファイルの拡張属性はどうか? OK
“:”の様な特殊文字はどうか? OK
長いファイル名はどうか? OK
TimeMachineでバックアップできるか? OK

Posted by お市のかた