第2章 インストール

Eiichirou UDA(日本語訳)

2016 年 7 月 26 日(訳)

目次

Netatalk の入手の仕方
バイナリーパッケージ
ソースパッケージ
Netatalk のコンパイル
前提条件
Netatalk のコンパイル
Netatalk の起動と停止

警告

Netatalk 3 は他バージョンと共存できないので、以前に Netatalk の古いバージョンを使ったことがあるなら、 “Netatalk 2 からのアップグレード”の章をまず読んでいただきたい!!!

Netatalk の入手の仕方

この件の最新の情報は GitHub の netatalk のページを一読いただきたい。

https://github.com/Netatalk/netatalk

バイナリーパッケージ

Netatalk のバイナリーパッケージは、いくつかの Linux、Unix ディストリビューションに含まれている。通常の配布元も見たいだろうと思う。

第三者が提供しているパッケージ リポジトリも参照する手もある。例えば、Red Hat 派生 Linux ディストリビューションの為のrpmfind Solaris 系 OS の為の OpenCSW 又は macOS の為の HomebrewMacPorts

ソースパッケージ

Tarball

tar で固めた Netatalk 安定版ソースコードは GitHub の Netatalk リリースページにある。

Git

Git レポジトリ のダウンロードは迅速で容易である:

  1. Git がインストールしてあることを確認する。which git は git のパスを示してくれるはずである。

    $ which git
    /usr/bin/git
  2. ソースを取得してみよう。

    $ git clone https://github.com/Netatalk/netatalk.git netatalk-code
    Cloning into 'netatalk-code'...
    remote: Enumerating objects: 41592, done.
    ...
    Resolving deltas: 100% (32227/32227), done.
    

    上記で Git リポジトリから、Netatalk のソース全体の完全でまっさらのコピーを含む netatalk-code という名前のローカルディレクトリが作成される。

  3. ブランチやタグを指定しない場合は、最先端の開発コードが取得さる。例えば、最新の安定した        Netatalk 3.1 コードを入手するには、「branch-netatalk-3-1」という名前のブランチをチェックアウトする:

    $ git checkout branch-netatalk-3-1
  4. レポジトリのコピーを最新の状態にしておきたい場合、適宜以下を実行する。

    $ git pull

Netatalk のコンパイル

前提条件

必要なサードパーティソフトウェア

  • Berkeley DB.

    書き込みの時に最低でもバージョン 4.6 が必要となる。

    推奨バージョンは 5.3 である Sleepycat ライセンスで提供された最終リリースである。

  • Libgcrypt

    OS X 10.7 とそれ以降で必須となった DHX2 のために Libgcrypt が必要である。

  • libevent

    netatalk サービス コントローラー デーモンの内部イベント コールバックは、        libevent バージョン 2 に基づいて構築されている。

任意のサードパーティソフトウェア

Netatalk はその機能性を拡充するために以下のサードパーティソフトウェアを使用することができる。

  • OpenSSL / LibreSSL / WolfSSL

    OpenSSL 1.1 又は LibreSSL は、Classic Mac OS に最も強力なパスワード暗号化を提供する DHCAST128 (別名 DHX) UAM に必要。Random Number UAM もこのライブラリを使用している。

    netatalk 3.2.0 以降は、バンドルされている WolfSSL ライブラリがデフォルトの DHX プロバイダーとして netatalk とともに配布されている。

  • Spotlight サポートのための Tracker

    Netatalk はメタデータのバックエンドとして Tracker を使用する。最近の Linux ディストリビューションには、Tracker のバージョン 0.7 以来使用可能な libtracker-sparql が提供されている。

    Samba プロジェクトの talloc ライブラリと、bison の様な Yacc パーサ、 そして flex の様な字句解析ツールも必要になる。

  • Bonjour(Zeroconf としても知られる)のための mDNSresponderPOSIX または Avahi

    サービス探索のために Mac OS X 10.2 及び以降のバージョンは Bonjour(Zeroconf としても知られる)を使用する。AFP ファイルサーバー又は Time Machine サービスをクライアントに通知することができる。

    Avahi は DBUS サポートのもとで ( --enable-dbus) ビルドされなければならない。

  • TCP wrappers

    TCPD または LOG_TCP としても知られる Wietse Venema のネットワークロガー。

    セキュリティオプションは: ホストごとドメインごとかつ/ないしはサービスごとのアクセス制御; ホスト名のなりすましあるいはホストアドレスのなりすまし検出; 早期警告システムを実装するブービートラップ;である。

  • PAM

    PAM はユーザー認証の柔軟な機構を実現する。PAM は SUN Microsystems によって作り出された。 Linux-PAM はアプリケーションがどのようにユーザーを認証するのかを選択できるようなローカルシステム管理を実現する共有ライブラリーのセットである。

  • Kerberos V

    Kerberos v5 は、マサチューセッツ工科大学で発明されたクライアント サーバー ベースの認証プロトコルである。 Kerberos ライブラリを使用すると、netatalk は既存の Kerberos インフラストラクチャで認証するための GSS UAM ライブラリを生成できる。

  • ACL と LDAP

    LDAP は ACL の高度な権限スキームと連携して動作する、オープンな業界標準のユーザー ディレクトリ プロトコルである。 一部のオペレーティング システムでは、ACL および LDAP ライブラリがシステムに組み込まれているが、 他のオペレーティング システムでは、この機能を有効にするためにサポート パッケージをインストールする必要がある。

  • MySQL

    MySQL 互換のクライアント ライブラリを活用することで、拡張性と信頼性の高い MySQL CNID バックエンドを使用して netatalk を構築できる。 管理者は、このバックエンドで使用する別のデータベース インスタンスを提供する必要がある。

  • D-Bus と GLib バインディング

    afpstats ツールに使われ、afpd サーバ状況を参照する子ができる。

  • iconv

    iconv はたくさんの文字エンコーディングの変換ルーチンを提供する。Netatalk は iconv を使用して内蔵されていない ISO-8859-1 のようなキャラクターセット変換を実現する。 glibc システムでは glibc の提供する iconv 実装を使うことができる。さもなくば GNU libiconv 実装を使うことができる。

  • CrackLib

    Random Number UAM と netatalk の固有パスワード管理ツール afppasswd を使用する際、CrackLib を使う事によって 弱いパスワードの設定を防ぐことができる。

  • Perl

    afpstatsapple_dumpasip-status 又は macusers という管理者向けツールは Perl 5.8 以降の実行環境を 使用している。下記 Perl モジュールは必須: IO::Socket::IP (asip-status) 又は Net::DBus (afpstats)。

  • DocBook XSL と xsltproc

    本マニュアル含めての netatalk ドキュメンテーションは XML 様式に作成され DocBook XSL スタイルシートを適用し生成されている。フォーマット変換は xsltproc で実施している。

Netatalk のコンパイル

ビルドシステムの使い方、コードのコンフィグ又はビルドの手順書は INSTALL ファイルを参考してください。

特定の OS に対しての具体的なビルド事例は Netatalk をソースコードからコンパイルする 付録を参考してください。

Netatalk の起動と停止

Netatalk の配布物は、 いくつかのオペレーティングシステム固有のスタートアップ・スクリプト・テンプレートを備えている。 これらテンプレートは、コンパイル前に指定できる。 現時点で、systemd、openrc、Linux、BSD、Solaris、そして macOS 向けのテンプレートが用意されている。 ビルドスクリプトにシステムタイプを指示することで、どのスタートアップスクリプト を生成してインストールするのか選ぶことができる。 スタートアップスクリプトを自動でインストールさせるには、 with-init-style オプションで有効なものを加える。

Linux ディストリビューションの新しいリリースは頻繁に出てくるし、 上記で触れたようなほかのシステムのスタートアップの手続きもまた変わりうる。 それ故、盲目的にスタートアップスクリプトをインストールするのではなく、 自分のシステムで動作するであろうかということをまず見てみる、というのがおそらくいい考えである。

Linux ディストリビューションの RPM あるいは BSD のパッケージのような所定のセットアップの一部として使用する場合、 諸々の事は概ねよしなに取り計らわれるだろう。 それ故、Netatalk そのものをコンパイルするユーザーには概ね下記のことが当てはまる。

いかなるスタートアップスクリプト機構を使っていても、下記のデーモンは必要である:

  • netatalk

スタートアップスクリプトは無くても、root ユーザとして netatalk デーモンを実行し、 使い終わったら SIGTERM で終了させることができす。

加えて、設定ファイル afp.conf が正しい場所にあるか確認する。