# インストール

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 の為の Homebrew か MacPorts 。

### ソースパッケージ

#### 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 / talloc / bison / flex

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

  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` デーモンに加えて、オプションの `papd`、`timelord`、`a2boot` デーモンも起動する必要があります。詳細については、このマニュアルの AppleTalk の章を参照してください。