第2章 インストール

Eiichirou UDA(日本語訳)

目次

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

警告

Netatalk 2 または 3 から Netatalk 4 にアップグレードする前に、このマニュアルの アップグレード の章を必ずお読みください。

Netatalk の入手の仕方

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

https://github.com/Netatalk/netatalk

バイナリーパッケージ

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

第三者が提供しているパッケージ リポジトリも参照する手もある。例えば、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 ライセンスで提供された最終リリースである。

  • libevent

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

  • Libgcrypt

    Libgcrypt ライブラリは、標準のユーザー認証モジュール (UAM) の暗号化を提供する。これらは、DHX2、DHCAST128 (別名 DHX)、および RandNum である。

  • Perl と UnicodeData.txt

    ビルド システムは、Perl と Unicode 文字データベースを使用して、Netatalk の Unicode 文字変換ソースを生成する。

    さらに、Netatalk の管理ユーティリティ スクリプトは、Perl ランタイム バージョン 5.8 以降に依存する。必須 Perl モジュールは以下: IO::Socket::IP (asip-status) 又は Net::DBus (afpstats)。

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

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

  • ACL と LDAP

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

  • Bonjour 用の Avahi または mDNSresponder

    Mac OS X 10.2 以降では、自動サービス検出に Bonjour (別名 Zeroconf) を使用する。 Netatalk は、Avahi または mDNSResponder を使用して AFP ファイル共有と Time Machine ボリュームをアドバタイズできる。

    Avahi ライブラリ自体は、D-Bus サポートを使用してビルドされている必要がある。

  • CrackLib

    Random Number UAM と netatalk 独自の afppasswd パスワード マネージャを使用する場合、CrackLib は netatalk での認証に弱いパスワードを設定するのを防ぐのに役立つ。

    ランタイム パッケージで別途配布されることもある CrackLib 辞書も必須である。

  • D-Bus および GLib

    afpd にファイル サーバーの使用統計を問い合わせるために afpstats ツールによって使用される。

  • DocBook XSL およびxsltproc

    このマニュアルを含む Netatalk ドキュメントは、XML 形式で作成されている。次に、DocBook XSL スタイルシートと xsltproc を使用して、XML を troff (マニュアル ページ用)、html、pdf などの人間が読める形式に変換する。

  • iconv

    iconv は、多くの文字エンコードの変換ルーチンを提供する。Netatalk は、ISO-8859-1 など、組み込みの変換がない文字セットを提供するためにこれを使用する。glibc システムでは、Netatalk は glibc が提供する iconv 実装を使用できる。それ以外の場合は、GNU libiconv 実装を使用できる。

  • Kerberos V

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

  • MySQL または MariaDB

    MySQL 互換のクライアント ライブラリを活用することで、netatalk は、スケーラビリティと信頼性に優れた MySQL CNID バックエンドを使用して構築できる。管理者は、このバックエンドで使用するために別のデータベース インスタンスを用意する必要がある。

  • PAM

    PAM は、ユーザーを認証するための柔軟なメカニズムを提供する。 PAM は SUN Microsystems によって発明された。Linux-PAM は、ローカル システム管理者がアプリケーションによるユーザー認証方法を選択できるようにする共有ライブラリ スイートである。

  • TCP ラッパー

    Wietse Venema のネットワーク ロガー。TCPD または LOG_TCP とも呼ばれる。

    セキュリティ オプションは次のとおり。ホスト、ドメイン、および/またはサービスごとのアクセス制御、ホスト名のスプーフィングまたはホスト アドレスのスプーフィングの検出。ブービートラップを使用して早期警告システムを実装する。

  • Tracker もしくは TinySPARQL / LocalSearch

    Netatalk は、Spotlight 検索インデックスのメタデータ バックエンドとして Tracker またはそれ以降のバージョンである TinySPARQL/LocalSearch を使用します。必要な最小限のバージョンは 0.7 です。これは SPARQL をサポートする最初のバージョンだからです。

  • talloc / bison / flex

    Spotlight には、Samba の talloc ライブラリ、bison などの Yacc パーサー、flex などのレキサーも必要。

Netatalk のコンパイル

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

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

Netatalk の起動と停止

Netatalk ディストリビューションには、コンパイル前にビルド システムに指定されたオプションに応じて調整される、オペレーティング システム固有の起動スクリプト テンプレートがいくつか付属している。現在、テンプレートは、一般的な Linux ディストリビューション、BSD バリアント、Solaris 派生、および macOS 用のプラットフォーム固有のスクリプトに加えて、systemd、openrc 用に提供されている。

ソースからビルドする場合、Netatalk ビルド システムは、どの init スタイルがプラットフォームに適しているかを検出しようとする。また、with-init-style オプションを指定して、必要な特定のタイプの起動スクリプト をインストールするようにビルド システムを構成することもできる。構文については、ビルド システムのヘルプ テキストを参照してください。

新しい Linux、*BSD、および Solaris のようなディストリビューションが定期的に登場し、上記の他のシステムの起動手順も変更される可能性があるため、起動スクリプトを盲目的にインストールするのではなく、まずシステムで機能することを確認することをお勧めする。

Linux ディストリビューション、RPM、または BSD パッケージなどの固定セットアップの一部として Netatalk を使用する場合は、おそらく適切に準備されているだろう。したがって、前の段落は、Netatalk を自分でコンパイルした人にほとんど当てはまる。

次のデーモンは、使用するスタートアップ スクリプト メカニズムによって起動する必要がある:

  • netatalk

スタートアップ スクリプトがない場合は、このデーモンを直接 (root として) 起動し、使い終わったら SIGTERM で終了することもできる。

さらに、構成ファイル afp.conf が適切な場所にあることを確認してください。 netatalk -V コマンドを実行すると、netatalk がファイルの場所を予測しているかどうかを問い合わせることができる。

AppleTalk サービスを実行する場合は、atalkd デーモンに加えて、オプションの papdtimelorda2boot デーモンも起動する必要がある。詳細については、このマニュアルの AppleTalk の章を参照してください。