2013年3月18日月曜日

Time Machine on Raspberry Pi (1)

Raspberry Pi を購入したので、常時起動の低消費電力サーバを構築したのでメモ。

そもそも、我が家で常時起動していてほしいサービスは、Mac のバックアップを取る Time Machine とデータ共有の Samba くらいなのでまずはそこら辺から攻めてみる。

使用するディストリビューションは Raspbian の "wheezy"を使用した。

使用機材

Time Machine のデータ格納用に USB HDD が必要だが、外部から電源を持ってくるために USB ハブを利用する。
今回使用したのはコレ。

Raspbian のインストール

dd コマンドでイメージを SD カードに書き込むだけ。


ssh でログイン

sshd が動いているので、ssh でログインする。
デフォルトのアカウントは pi、パスワードは raspberry
$ sudo passwd pi
で、変更可能。

Raspbian の初期設定

ひとまずパッケージを最新版にしておく。
$ sudo apt-get update
$ sudo apt-get upgrade

この状態でのシステム情報はこんな感じ
$ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux

Netatalk のインストール

apt-get でインストールできるが、apt-get でインストールできる netatalk は 2.2.x なので、ソースコードをダウンロードしてインストールする。

ソースコードのダウンロード

ここから最新版 (2013/03/16 現在 v3.0.2) のソースコードをダウンロードする。

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

「Ubuntu 12.04 Precise に Netatalk 3.0.1 を入れる」@HAT にならって必要なパッケージをインストールする。
  • libssl-dev
  • libgcrypt11-dev
  • libpam0g-dev
  • libwrap0-dev
  • libdb-dev
  • libavahi-client-dev
  • libacl1-dev
  • libldap2-dev

ソースコードのビルド

configure のオプションに ./configure --with-init-style=debian を指定する。 
$ ./configure ./configure --with-init-style=debian

結果はこんな感じ。


    LIBS           = -ldl
    CFLAGS         = -I$(top_srcdir)/include -I$(top_srcdir)/sys -D_U_="__attribute__((unused))" -g -O2
    PTHREADS:
        LIBS   =
        CFLAGS = -pthread
    SSL:
        LIBS   =  -lcrypto
        CFLAGS =  -I/usr/include/openssl
    LIBGCRYPT:
        LIBS   = -L/lib/arm-linux-gnueabihf -lgcrypt
        CFLAGS =
    PAM:
        LIBS   =  -lpam
        CFLAGS =
    WRAP:
        LIBS   = -lwrap
        CFLAGS =
    BDB:
        LIBS   =  -ldb-5.1
        CFLAGS =
    ZEROCONF:
        LIBS   =  -lavahi-common -lavahi-client
        CFLAGS =  -D_REENTRANT
    LDAP:
        LIBS   =  -lldap
        CFLAGS =
    LIBEVENT:
        bundled
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
         ACL support:             yes
         Kerberos support:        auto
         LDAP support:            yes

make する。
$ make
ビルドが遅いのでしばし待つ。

ビルド完了後、インストール。
$ make install

インストールの確認。
$ afpd -version
afpd 3.0.2 - 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
              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/

HAT さんから指摘を受けて、オプションを "-version" から "-V"  に変更。
$ afpd -V
afpd 3.0.2 - Apple Filing Protocol (AFP) daemon of Netatalk
(略)
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: /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/

ひとまずこれで Netatalk のインストール作業は完了。

Netatalk の設定に続く。

3 件のコメント:

  1. afpdの確認をするときは、大文字の「V」を使った方がいいです。
    $ afpd -V

    ところで、Netatalk日本語メーリングリストをつくりましたが、どーですか。
    http://www003.upp.so-net.ne.jp/hat/netatalk/ja-ml.html
    開設して間もないですが、既にバグ2件のfixに成功しており、まずまずのスタートです。

    返信削除
  2. 指摘ありがとうございます。
    "-version" != "-V" で、出力も違うんですね。
    記事を修正しました。

    ML 面白そうなので、近日中に加入してみます。

    返信削除
  3. $ man afpd
    してみてください。
    -versionというオプションはありません。
    あるのは-vと-Vです。
    -versionは、たまたま最初の一文字が評価されて-vの動作をしているだけでしょう。

    返信削除